当有两个最大长度的子串时,如何找到最长的回文子串

时间:2018-06-03 15:15:05

标签: python string palindrome

我正在解决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。

1 个答案:

答案 0 :(得分:0)

正如@ Aran-Fey指出的那样,你需要改变

if len(new_str) >= y:

if len(new_str) > y:

说明:如果您使用>=运算符,则后面的相同长度的回文将覆盖之前的回文,而>运算符则确保您只设置pal_string和{{ 1}}如果你找到了更长的回文。