嘿大家我已經在Python 2.7在掙扎中最長的迴文算法的挑戰。我正在接近但有一個小錯誤,我無法弄清楚。我有迴文工作,但不能得到最長的迴文打印正確,要麼給我一個字符緩衝區錯誤或打印0停留在最長的迴文算法在Python 2.7
def palindrome(string):
string = "".join(str.split(" ")).lower()
i = 0
while i < len(string):
if string[i] != string[(len(string) - 1) - i]:
return False
i += 1
return True
print palindrome("never odd or even")
def longest_palindrome(string):
best_palindrome = 0
i1 = 0
while i1 < len(string):
length = 1
while (i1 + length) <= len(string):
substring = string.split(i1,length)
if palindrome(substring) and (best_palindrome == 0 or len(substring) > len(best_palindrome)):
best_palindrome = substring
length += 1
i1 += 1
return best_palindrome
print longest_palindrome("abcbd")
請解釋「最長的迴文算法挑戰」是什麼,以便我們能夠理解你在做什麼。 –
您的迴文功能正在做一些無稽之談。 –
我覺得@OP正試圖實現[Manacher的算法(https://en.wikipedia.org/wiki/Longest_palindromic_substring) – shash678