給定乙個字串 s,找到 s 中最長的回文子串。你可以假設 s 的最大長度為 1000。
示例 1:
輸入: 「babad」
輸出: 「bab」
注意: 「aba」 也是乙個有效答案。
示例 2:
輸入: 「cbbd」
輸出: 「bb」
思路
1.最長回文串可能是奇數或者偶數長度
2.奇數長度的特點是:掃瞄當前字元的前乙個和後乙個字元如果相等,依次向2邊蔓延開繼續判斷。
3.偶數長度的特點是:先掃瞄到2個相鄰相同的字元作為判斷的開始,依次向2邊蔓延開繼續判斷。
4.邊界問題:空字串或者字串長度為1返回字串本身,初始化最長回文串為字串的第乙個字元
class solution
int maxindex = 0;
int maxlength = 1;
if (s.charat(0)==s.charat(1))
boolean flag; //標記是奇數還是偶數回文串
for (int i = 1; i < s.length() - 1; i++) else
}if (strlength > maxlength)
}// 奇數回文串
if (s.charat(i - 1) == s.charat(i + 1)) else
}if (strlength > maxlength) }}
return s.substring(maxindex, maxindex + maxlength);
}}
最長回文子串 LeetCode 五 最長回文子串
題目 最長回文子串 給定乙個字串s,找到s中最長的回文子串。你可以假設s的最大長度為 1000。題目解析 回文?當回文串長度為奇數時,比如 北京計程車租出京北 當回文串長度為偶數的時候,比如 1221 以上兩種情況有乙個共同的特點就是有乙個中心,那在 中如何表示中心呢?class solution ...
leetcode 最長回文子串
給定乙個字串 s,找到 s 中最長的回文子串。你可以假設 s 的最大長度為1000。示例 1 輸入 babad 輸出 bab 注意 aba 也是乙個有效答案。示例 2 輸入 cbbd 輸出 bb 中心拓展法 由乙個中心點開始向兩邊拓展,檢測邊界,判斷兩個值是否相等,相等則繼續拓展下去,檢測邊界。1....
最長回文子串(LeetCode)
給定乙個字串s,找到s中最長的回文子串。你可以假設s的最大長度為 1000。示例 1 輸入 babad 輸出 bab 注意 aba 也是乙個有效答案。示例 2 輸入 cbbd 輸出 bb class solution def longestpalindrome self,s type s str r...