从随机字母序列中找单词?

1 投票
1 回答
1346 浏览
提问于 2025-04-18 13:12

我正在做一个项目,首先把“π”的数字翻译成英文字母。具体来说,我给每个数字分配一个字母,比如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

撰写回答