我有一个包含几千个单词的数组。我的网页上有一个输入字段,允许用户输入几个字母,然后点击搜索。当用户点击搜索时,应用程序应查看字典并查看可以从提供的字母形成的单词。每个字母只能使用一次(如拼字游戏)。
是否已经有一个搜索库来做这样的事情?如果没有必要,我不想重新发明轮子。如果没有,有没有人有高性能解决方案的想法。我想这之前已经完成了数百万次。
答案 0 :(得分:1)
jQuery成名的John Resig也在考虑这个问题:
答案 1 :(得分:1)
你需要做的是转换哈希表中的单词数组,其中键是每个单词的字母排序。例如:
['car', 'shoe', 'train']
=> {'acr': ['car'],
'ehos': ['shoe'],
'ainrt': ['train']}
然后你拿用户的字母,你对它们进行排序,你做一个哈希表(任何字典impl会做,但哈希表在这种情况下是最有效的)查找使用排序的字母作为键。与您的密钥对应的列表是您可以对这些字母执行的单词列表。这具有时间复杂度为O(n)= 1的优点。
答案 2 :(得分:1)
Steve Hanov也写了一些关于此的事情: