第一百四十二章 规则
    热烈掌声响起来。

    观众席上大部分人都在盯着大屏幕,等着看规则。

    大屏幕亮了。

    团队现场编程。限时三小时。共一道大题,分三个阶段递进。

    题目:设计一套中文输入法引擎。

    林东看到这行字的时候,手指在键盘上停了一下。

    输入法。

    屏幕、电池、主板、外壳、触控算法、天线、驱动一全都齐了,唯独输入法还用的是开源的方案,体验一般,适配也麻烦。

    他本来打算年后做一套,现在好了,决赛题目就是输入法。

    他嘴角动了一下。

    做完直接拿走。

    阶段一(60分钟):内核索引。

    设计拼音到汉字的索引结构。给定词库(约10万词条),要求支持拼音输入,返回匹配的候选词列表。响应时间不超过20,内存占用不超过1MB。

    阶段二(60分钟):智能联想。

    在阶段一的基础上,增加词组联想功能。输入一个词,系统自动预测下一个可能的词。。

    阶段三(60分钟):动态优化。

    在阶段二的基础上,增加词频动态调整功能。用户的使用习惯实时影响候选词排序。。

    提交内容:每阶段完成后提交代码,系统自动评测。三阶段全通过者按总用时排名。

    李教授顿了顿,扫了一圈全场:“现在,我宣布—一创新杯程序设计大赛决赛,正式开始。”

    大屏幕上倒计时跳动:03:00:00。

    体育馆里安静下来,只有键盘敲击的声音。

    林东没有急着动手。

    他把三个阶段的要求又看了一遍,然后靠在椅背上,闭上眼睛。

    阶段一,内核索引。

    拼音到汉字的映射,常规做法是用Trie树,时间复杂度0(n),内存可控。但Trie树的每个节点都要存26个指针,10万词条下来,内存肯定超1MB。得换一种思路。

    他想到了李虎重写后的那个数据结构。

    第二轮比赛,李虎那道题的原解法是0(n2),重写后降到了0(nlogn)。

    内核改进是把嵌套循环换成了哈希加二分查找,数据存储从链表换成了数组。当时林东站在李虎后面看了一眼,觉得这个思路不错,顺手记下来了。没想到今天用得上。

    他睁开眼睛,打开编辑器。

    先用哈希表存拼音到词条索引的映射,再用数组存词条本身。

    查询的时候,哈希找到索引,二分查找定位,一次搞定。。

    够了。

    他开始写代码。

    手指落在键盘上,速度不快不慢。哈希函数、冲突处理、二分查找边界—

    每一个细节都在他脑子里过了好几遍。他不是在“写”代码,是在“翻译”脑子里的东西。

    写了大概三十分钟,他停下来,检查了一遍。哈希函数没问题,二分查找边界处理正确,内存分配没有泄漏。

    他看了一眼旁边的李虎。李虎也在写,手指飞快,屏幕上代码一行一行地跳出来。他写的是阶段一,用的也是哈希加二分查找一和林东的思路一模一样。

    林东嘴角动了一下。

    他没告诉李虎怎么做,李虎也没问他。两个人想到一块去了。是这道题的最优解就在那儿,谁水平够,谁就能看到。

    他收回目光,继续写。

    又写了十分钟,代码完成了。

    他按下“编译”——通过。

    再按下“运行”——测试用例全部通过。

    响应时间——他看了一眼,12。。

    他深吸一口气,按下“提交”。

    大屏幕上,四大天王队的图标亮了—一提交。

    观众席上一阵骚动。

    “这么快?四十分钟就提交了?”

    “张扬队那边还没动静呢。”

    “是不是太赶了?”

    李虎也转过头来,压低声音:“老四,你交了?”

    “恩。”

    “这么快?”

    林东没回答,盯着大屏幕。

    几秒钟后,图标变红。

    未通过。

    观众席上响起一片议论。

    “被退回了。”

    “我说吧,太赶了。”

    “四大天王不会翻车吧?”

    周琳坐在观众席上,抓着陈露的骼膊,指甲都快掐进去了:“怎么回事?”

    陈露盯着大屏幕,声音很稳:“还没结束。”

    林东看着屏幕上那个“未通过”,脸上没什么表情。

    他打开评测反馈,看了一眼—边界条件。

   

本章未完,请点击下一页继续阅读>>