我試圖做一個函數,找到字符串中最長的迴文沒有使用for循環。如果有相同長度的迴文,則會產生按字母順序排列的迴文。例如:「」=>「」,「bcd」=>「b」,「acaba」=> aba沒有循環的字符串中最長的迴文Python 3
我發現這個溢出是類似的,除了它用於循環,它找到第一個迴文。
def palindromes(text):
results = []
for i in range(len(text)):
for j in range(0, i):
chunk = text[j:i + 1]
if chunk == chunk[::-1]:
results.append(chunk)
return text.index(max(results, key=len)), results
我想用的方法是檢查每個子字符串是否等於它的反向子字符串[:: - 1]。但我不知道如何獲得每個可能的子字符串。我知道遞歸我可以刪除字符串的最後或第一個位置,但不會檢查中間的子字符串。
提示:字符串's'中最長的迴文或者是's'本身,或者是's [: - 1]中最長或者s'中最長的'[1:]' – Julien