基本上,我正在寻找的是某种在 PHP 中实现字典的类或方法。
例如,如果我正在构建一个单词解密器 - 假设我使用了字母“a,e,l,p,p”。排列的可能性是巨大的 - 我如何只显示那些实际的单词(苹果,苍白等)?
Thanks!
经典的单词查找问题可以使用以下方法有效解决:Trie.
我建议找到一个单词列表,例如,来自WordNet,将其存储在Trie中,然后执行fast查找可能的单词。
解决方案的形式如下:
- 加载单词列表
- 将单词列表存储在 trie 中
- 接受要解读的单词的输入
-
尝试排列 i=1..N
A。使用 trie 查找排列
b.如果有阳性结果,请将其存储以供显示
C。迭代 (i++)
重复3。
edit:
这里需要注意的是,对于任何 N 长度的字符单词,可能有 N!所需的查找(对于 7 个字符,即 5040)。您应该考虑对 trie 查找算法进行一些优化。例如,通过尽早排除无效子字符串并且不重复末端排列,您可以获得显着的效率。
例如给定单词 apple,如果您选择“ppl”作为前三个字符的排列,则不会找到任何单词。所以,无论你如何排列末尾的 a 和 e,你都无法构建一个单词。提前终止排列对于算法的效率可能很重要。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)