我正在尝试在给定 6 个字母的 iphone 上创建这个应用程序,它会输出所有可能的 3-6 个字母的英文单词。我已经有字典了,我只是想知道怎么做。
我四处搜索,只找到了 python 中的拼字游戏求解器或那些单词搜索网格解决方案。
我认为蛮力搜索可以,但我担心性能。代码不是必需的,算法的链接或算法本身就可以了,我想一旦我得到它就可以管理。
谢谢!
最佳答案
如果您关心性能,此方法可能会奏效。它涉及一些预处理,但允许近乎即时地查找字谜。
创建一个将字符串键映射到字符串列表的数据结构(我更熟悉 Java,所以在这种情况下它将是
Map<String,List<String>>
)这将存储您的字典。定义一个函数,它接受一个字符串并输出按字母顺序排列的相同字母。例如,
hello
会变成ehllo
;kitchen
会变成cehiknt
.我将此函数称为keyify(word)
这是预处理部分:对于字典中的每个项目,找到该项目的键 (
keyify(item)
) 的列表并将该项目添加到列表中。当需要查找给定单词的变位词时,只需在
keyify
中查找列表即可。的那个词。例如,如果输入是kitchen
,keyify
将是cehiknt
,并在您的 map 中查找应该会生成一个包含kitchen
的列表,chicken
以及我忘记的任何其他厨房字谜:P
关于Objective-C 乱码求解器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6838988/