leetcode 最長回文子串

2021-09-25 01:18:18 字數 838 閱讀 6844

給定乙個字串 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...