5. 最長回文子串
給定乙個字串 s,找到 s 中最長的回文子串。你可以假設 s 的最大長度為 1000。
示例 1:
輸入: "babad"
輸出: "bab"
注意: "aba" 也是乙個有效答案。
示例 2:
輸入: "cbbd"
輸出: "bb"
class
solution
return res;
}private string palindrome
(string s,
int l,
int r)
else
}// system.out.println(l);
// system.out.println(r);
string res = s.
substring
(l+1
,r);
return res;
}}
思路:以乙個字元為中心,分別向左右移動,但此刻左右對應字串相同時則繼續左右移動,
直至二者不相同為止。但有兩種情況,第一種是得到的答案回文串長度為奇數,例如 aba,
第二種是得到的答案回文串長度為偶數,例如 abba。
示例:babad
1) i=0;
palindrome(s,0,0);
l=0;r=0;
s1 ='b'; s2= 'b';s1==s2;故 l--;r++;//l=-1;r=1;
迴圈結束,返回 s.substring(s,0,1) = "b";
palindrome(s,0,1);
l=0;r=1;
s1='b';s2='a';s1!=s2;//
迴圈結束,返回 s.substring(s,1,1)="";
2) i =1;
palindrome(s,1,1);
l=1;r=1;
s1 = 'a';s2='a';l++;r--;// l =0;r=2;
s1 = 'b';s2='b';l++;r--;// l =-1;r=3;
迴圈結束,返回s.substring(s,0,3) = "bab";
palindrome(s,1,2);
l=1;r=2;
s1 = 'a';s2='b';
迴圈結束;返回s.substring(2,2) = "";
3)i=2;以此類推
5 最長回文子串
給定乙個字串s,找到s中最長的回文子串。你可以假設s長度最長為1000。示例 輸入 babad 輸出 bab 注意 aba 也是有效答案示例 輸入 cbbd 輸出 bb 方法1 用馬拉車演算法 字串動態規劃 來求最長回文子串時間複雜度可以達到o n 但是部落格裡面有個小失誤 這個id應該不是最大回文...
5 最長回文子串
給定乙個字串s,找到s中最長的回文子串。你可以假設s的最大長度為1000。示例 1 輸入 babad 輸出 bab 注意 aba 也是乙個有效答案。示例 2 輸入 cbbd 輸出 bb class solution def longestpalindrome self,s k len s olist...
5 最長回文子串
給定乙個字串s,找到s中最長的回文子串。你可以假設s的最大長度為 1000。示例 1 輸入 babad 輸出 bab 注意 aba 也是乙個有效答案。示例 2 輸入 cbbd 輸出 bb 這道題比較船艇的應該是dp求法,但鄙人的dp特別特別的差勁。所以我選用中心擴充套件演算法,掃一遍所有節點,把被掃...