我现在遇到了一个问题,我必须在列表中找到所有的palingrams。我写了一段代码,但是效率很低,花了大约3个半小时才完成。我需要找到一些更有时效性的东西。
现在,我被这段代码卡住了:
import sys
def load(file):
"""Open a text file & turn contents into a list of lowercase strings."""
try:
with open(file) as in_file:
loaded_txt = in_file.read().strip().split('\n')
loaded_txt = [x.lower() for x in loaded_txt]
return loaded_txt
except IOError as e:
print("{}\nError opening {}. Terminating program.".format(e, file),
file=sys.stderr)
sys.exit(1)
def find_palingrams():
pali_list = []
for word in word_list:
if end > 1:
for i in range(end):
if word[i:] == rev_word[:end-i] and rev_word[end-i:] in word_list:
pali_list.append((word, rev_word[end-i:]))
if word[i:] == rev_word[end-i:] and rev_word[:end-i] in word_list:
pali_list.append((rev_word[end-i:], word))
return sorted(pali_list)我对此有问题,因为它不打印我正在寻找的特定输出。它正在打印单词,但它排除了"aa aa“、"a ba”、"a baba“等大小写。有一些我看不到的东西导致单个字母没有完全包含在内。我知道end > 1,然而,即使试图改变,我也会遇到困惑。
有没有人能说点什么?
发布于 2020-10-20 23:05:32
我猜你指的是回文单词。检查单词是否为回文的一种更简单的方法:
>>> word = "level"
>>> word == word[::-1]
True你可能想使用更简洁的方式,然后根据测试结果添加单词:
if word == word[::-1]:
# add it to the listhttps://stackoverflow.com/questions/64447615
复制相似问题