我正在解决here中最长的回文子串问题。我遇到了如何在发生冲突时如何返回首先出现的子字符串(起始索引最少)。
$.ajax({ url: "/Home/NewsBySectorTitle?sector=10, dataType: "html" }).done(function (data) {$("#col1").append(data);});
输入: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
。
我正在使用Python2.7。
答案 0 :(得分:0)
正如@ Aran-Fey指出的那样,你需要改变
if len(new_str) >= y:
到
if len(new_str) > y:
说明:如果您使用>=
运算符,则后面的相同长度的回文将覆盖之前的回文,而>
运算符则确保您只设置pal_string
和{{ 1}}如果你找到了更长的回文。