Я решаю самую длинную проблему подстроки палиндрома из здесь .Я застрял на том, как я должен вернуть подстроку, которая появляется первой (с наименьшим начальным индексом), когда есть конфликт.
def longestPalindrome(A):
pal_string = ''
x = len(A)
y = 0
for i in range(0,x):
for j in range(x,i-1,-1):
new_str = A[i:j]
if new_str == new_str[::-1]:
if len(new_str) >= y:
y = len(new_str)
pal_string = new_str
return pal_string
print longestPalindrome('abb')
print longestPalindrome('aaaabbaaa')
print longestPalindrome('caba')
print longestPalindrome("abbcccbbbcaaccbababcbcabca")
Ввод: ("abbcccbbbcaaccbababcbcabca")
должен вернуть bbcccbb
, но мой код возвращает cbababc
.
Я использую Python2.7.