此算法将输入一个数字,然后从.txt
文件返回字典中具有该长度的字谜数量。如果我输入5,当我应该根据我的列表得到5046时,我得到6783的输出。我不知道还有什么可以改变的。
例如:输入5应返回5046
我也一直试图在列表中搜索字长的正整数,以收集字符数最多的字词,我不知道从哪里开始。
ex:字长为4的输入应该返回最大的字谜数量6,并输出字谜列表,例如
[’opts’, ’post’, ’pots’, ’spot’, ’stop’, ’tops’]
def maxword():
input_word = int(input("Enter word length (hit enter key to quit):"))
word_file = open("filename", "r")
word_list = {}
alist = []
for text in word_file:
simple_text = ''.join(sorted(text.strip()))
word_list.update({text.strip(): simple_text})
count = 0
for num in word_list.values():
if len(num) == input_word:
count += 1
alist.append(num)
return str(input_word) + str(len(alist))
答案 0 :(得分:0)
这可以通过输入文本文件的单次传递来实现。您对单词进行排序并将其存储在地图中的想法是正确的方法。
使用排序后的单词作为键来构建字典,因为它对于所有字谜都是相同的,并且具有与作为键的键相同的排序单词的单词列表。
为了避免再次循环字典,我们会跟踪具有最大长度的密钥作为其值。
如果构建此file = open("test.txt", "w")
file.close()
字典只使用一次特定长度,那么您只能考虑字典长度为word_list
的单词。
input_word