我試圖從生成的anagrams列表中找到迴文。這裏的轉折點是我最初的輸入是一個迴文列表。我本質上是試圖自動尋找一個迴文的迴文(不是作業,只是一個英文書呆子)。從anagrams找到迴文
輸入的原始迴文來自'pals.txt',其中迴文是行分隔的,並且已經刪除了空格和非數字字符。我正在使用英英詞典文件'dictionary.txt'來生成字典。
我會感激任何輸入,因爲我仍然是一個開始的程序員。謝謝!
def isPalindrome(s):
return s.lower() == s[::-1].lower()
def anagramchk(word,chkword):
for letter in word:
if letter in chkword:
chkword = chkword.replace(letter, '', 1)
else:
return 0
return 1
f0 = open('pals.txt', 'r')
f1 = open('dictionary.txt', 'r')
for line in f0:
wordin = line
for line in f1:
line = line.strip()
if len(line) >= 4:
if anagramchk(line, wordin):
if isPalindrome(line):
print line
f0.close()
f1.close()
哪裏定義'wordin'? (或是一個假設函數的輸入參數?) – inspectorG4dget
而不是你的'anagramchk',你可以簡單地使用'sorted(word.lower())== sorted(chkword.lower())' - 排序放置按照規範的順序排列所有的字符串 - 或者你可以使用'collections.Counter'類 - Counter(word.lower())== Counter(chkword.lower()) - 來比較計數。 – DSM
@ inspectorG4dget我對此遺漏了一條線。這給我帶來了另一個問題,我可以嵌套多個這樣的「線路」電話嗎? – ajnachakra