Objective-C 乱码求解器

标签 objective-c algorithm string-search anagram wordsearch

我正在尝试在给定 6 个字母的 iphone 上创建这个应用程序,它会输出所有可能的 3-6 个字母的英文单词。我已经有字典了,我只是想知道怎么做。

我四处搜索,只找到了 python 中的拼字游戏求解器或那些单词搜索网格解决方案。

我认为蛮力搜索可以,但我担心性能。代码不是必需的,算法的链接或算法本身就可以了,我想一旦我得到它就可以管理。

谢谢!

最佳答案

如果您关心性能,此方法可能会奏效。它涉及一些预处理,但允许近乎即时地查找字谜。

  1. 创建一个将字符串键映射到字符串列表的数据结构(我更熟悉 Java,所以在这种情况下它将是 Map<String,List<String>> )这将存储您的字典。

  2. 定义一个函数,它接受一个字符串并输出按字母顺序排列的相同字母。例如,hello会变成ehllo ; kitchen会变成cehiknt .我将此函数称为 keyify(word)

  3. 这是预处理部分:对于字典中的每个项目,找到该项目的键 (keyify(item)) 的列表并将该项目添加到列表中。

  4. 当需要查找给定单词的变位词时,只需在 keyify 中查找列表即可。的那个词。例如,如果输入是 kitchen , keyify将是 cehiknt ,并在您的 map 中查找应该会生成一个包含 kitchen 的列表, chicken以及我忘记的任何其他厨房字谜:P

关于Objective-C 乱码求解器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6838988/

相关文章:

ios - Xcode 5 持续集成 CodeSign 失败

ios - 将 JSON 数据发布到现有对象中

java - 使用最快且高效的字符串搜索方法随机搜索文本文件中的关键字

string - Octave - 返回字符串在元胞数组中第一次出现的位置

regex - 正则表达式只匹配行尾的 X 个字符

objective-c - Objective C 委托(delegate)的头文件

objective-c - 映射 RestKit 后响应

用于返回有向图中特定范围的节点的算法

c - N皇后使用回溯的时间复杂度?

java - 检查机器人的给定移动序列是否在 Java 中是圆形的