給定乙個字串 s,找到 s 中最長的回文子串。你可以假設 s 的最大長度為 1000。
示例1輸入: 「babad」
輸出: 「bab」
注意: 「aba」 也是乙個有效答案。
示例2輸入: 「cbbd」
輸出: 「bb」
解題思路
中心擴充套件法判斷是否符合回文要求,分兩種情況,具體如示例1和2
**實現
class
solution
(object):
deflongestpalindrome
(self, s)
:def
find
(s, left, right)
:while left>=
0and right<
len(s)
and s[left]
==s[right]
: left -=
1 right +=
1return right - left -
1#因為判斷是否滿足條件時left多減了1,所以計算長度需要減1
start =
0 end =
0for i in
range
(len
(s))
: len1 = find(s, i, i)
len2 = find(s, i, i+1)
max_len =
max(len1, len2)
if max_len > end - start +1:
# 長度為奇數
if max_len %2==
1:start =
int(i -
(max_len-1)
/2) end =
int(i +
(max_len-1)
/2)# 長度為偶數
else
: start =
int(i +
1- max_len /2)
end =
int(i + max_len /2)
return s[start:end+
1]
最長回文子串 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...