步进词变音符号python

2024-10-02 22:31:38 发布

您现在位置:Python中文网/ 问答频道 /正文

步进词是通过取一个给定的单词,加上一个字母,然后对结果进行重新编程而形成的。例如,从单词“APPLE”开始,您可以添加一个“A”和一个anagram来获得“APPEAL”。在

给定一个全局单词字典,创建一个函数step(word),该函数返回字典中出现的所有唯一、有效的step单词的列表。在

字典:https://raw.githubusercontent.com/eneko/data-repository/master/data/words.txt

我用以下链接制作了一本词典:

>>> words = open('words.txt', encoding='ascii').read().upper().split()

这个赋值应该在没有任何其他库函数调用的情况下完成。有几种解决方案,但有些比其他方案更好、更快。如何加快解决方案的速度?在

解决方案应该是这样的。在

^{pr2}$

Tags: 函数txtappledata字典step编程字母
1条回答
网友
1楼 · 发布于 2024-10-02 22:31:38

因为字谜有相同的字母,如果你按字母顺序对一个单词中的字母进行排序,你将得到相同的字串,这些字串是彼此的字谜。 例如: 闰->;按字母顺序排序->;AEPL 浅色->;字母排序->;AEPL

1)您应该遍历字典中的所有单词,并创建按字母顺序排序的字符串键的查找,以查找具有相同键的单词列表。在

给出一个单词表

["PALE","LEAP"]

您将得到如下的anagram查找

^{pr2}$

2)接下来,取输入的单词,尝试不同的字母组合来创建一个新的字符串。对这个字符串进行排序,然后对照anagram字典查找匹配项。将返回的列表连接到一个列表中并返回该列表。在

比如说,让我们生成单词组合

["PEAA","PEAB"...,"PEAL",...]

按字母顺序对每个候选单词进行排序

["AAEP","ABEP",...,"AEPL",...]

然后查找并连接返回的列表

["LEAP","PALE"]

如果您也需要python代码,请告诉我,但编写代码应该很容易。加速主要是由于对anagram查找字典进行预处理,最终查找在几乎恒定的时间内运行,但它使用了输入列表中单词顺序的额外空间。在

相关问题 更多 >