如何实现T9字典?

时间:2012-07-14 08:52:22

标签: algorithm dictionary

我们如何实现移动中使用的字典? (在移动设备上输入消息时使用)。因为它显示了可以用输入的字符形成的单词列表。

示例:

4663可以是好的,不见了,回家。

467它显示建议的词语很重要。

1 个答案:

答案 0 :(得分:3)

简单解决方案是预先计算单词并构建一个在节点中有数字的 trie tree ,每个叶节点都有一个指向链表的链接/ array(或其他一些数据结构)可以使用这些数字形成的字符串。

在任何给定点,例如用户键入了4663 - >转到非空的最后一个节点(在示例中具有数字3)的所有子节点,通过各种路径到达叶节点并打印有效单词。

注意:由于位数= 10,因此特里树的大小将受到限制。也可以使用三元搜索树(TST)代替特里树,但是由于只有10个数字,因此使用TST没有太大的优势。

编辑 - 正如user1168577所指出的那样,使用类似于使用频率的启发式方法,可以按顺序显示单词。