当前代码返回文本文件中最长的一行,即句号。
如果您想要最长的一行是某个输入字符串的anagram,则需要获取一个输入字符串,并过滤掉不是anagram的行。
因为您指定了不存在重复字母,所以检查两个单词是否为anagrams的最简单方法是检查它们是否具有相同的字母集。所以:def Words(inputletters):
inputletters = set(inputletters)
qfile=open('dict.txt','r')
long=''
for line in qfile:
if set(line.strip()) == inputletters:
if len(line)>len(long):
long=line
return long
如果你不是在寻找一个精确的匹配,而只是一个子集,那么就用.issubset替换==。
或者如果“你不能重复字母”的意思是“你必须在两个字符串中完全重复相同的字母才能算作anagrams”,那也很简单:不要比较字母的集合,而要比较字母的排序列表:def Words(inputletters):
inputletters = sorted(inputletters)
qfile=open('dict.txt','r')
long=''
for line in qfile:
if sorted(line.strip()) == inputletters:
if len(line)