【发布时间】:2017-04-05 02:48:30
【问题描述】:
我想从一个短语中找到所有可能的字谜,例如,如果我输入“Donald Trump”,我应该得到“Darn mud plot”、“Damp old runt”,可能还有数百个。
我有一本大约 100,000 字的字典,没有问题。
但我能想到的唯一方法是遍历字典并将所有可以从输入构建的单词添加到列表中。然后遍历列表,如果单词长度小于输入的长度,则再次遍历字典,添加所有可能的单词,这些单词可以由剩余的字母组成,使其长度等于或小于输入的长度。并继续循环,直到我得到所有长度等于输入长度的有效单词的组合。
但这是 O(n!) 复杂度,并且几乎需要永远运行。我试过了。
有没有办法解决这个问题,从而降低复杂性?我可能在网上找到了一些关于 perl 的东西,但我绝对看不懂 perl 代码,尤其是 perl golf。
【问题讨论】:
-
这似乎是一个codereview.stackexchange.com 的问题。之前在该网站上也有人问过这个问题。查看codereview.stackexchange.com/questions/75023/…
-
@TehTris Code Review 问题包含可供同行评审的真实、实际、工作代码。这与 CR 无关。
-
它看起来像一个副本:stackoverflow.com/questions/55210/…
标签: python string algorithm big-o anagram