从随机字母序列中找单词?
我正在做一个项目,首先把“π”的数字翻译成英文字母。具体来说,我给每个数字分配一个字母,比如a=0,b=1,依此类推。我处理了10,000个π的数字,得到了大约8700个字母。接下来的步骤是从这些生成的字母序列中找出有意义的单词。我想知道有没有人做过类似的项目?有没有人能分享一个算法或者简单的代码,帮助我轻松找到这些随机序列中的单词?如果不能直接提供代码,能不能给我一些更简单的方法来找到这些单词?
这个链接列出了所有的英文字典字母,方便选择。
补充说明:抱歉我没提到代码是怎么工作的。这个Java代码考虑了两个数字,并给它们分配一个字符(例如,o=14),因为9之后的字母不会被分配。如果数字超过25,就要分别考虑2和5。例如,2526会被分解成z(25)、b(2)和g(6),因为26被拆分成2和6。
1 个回答
1
这个问题很小,所以用暴力破解的方法在不到一秒钟内就能解决:
下面是Python代码:
for pi in open('pi.txt'):
pi = pi.upper()
words = [word.rstrip() for word in open('wordlist.txt') if word.rstrip().upper() in pi]
(pi.txt是一个包含你转换后的字母的文件)
如果你想按字的长度来打印这些单词,可以使用:
words.sort(key=len)
for word in words:
print word
最长的单词是:
high
jive
life
shah
facie
hutch