leetcode 最長回文子串

2021-10-09 17:17:44 字數 1551 閱讀 7016

方法一:動態規劃

思路與演算法

# 列舉子串的長度 l+1

for l in range(n):

# 列舉子串的起始位置 i,這樣可以通過 j=i+l 得到子串的結束位置

for i in range(n):

j = i + l

if j >= len(s):

break

if l == 0:

dp[i][j] = true

elif l == 1:

dp[i][j] = (s[i] == s[j])

else:

dp[i][j] = (dp[i + 1][j - 1] and s[i] == s[j])

if dp[i][j] and l + 1 > len(ans):

ans = s[i:j+1]

return ans

複雜度分析

時間複雜度:o(n^2)

空間複雜度:o(n^2)

方法二:中心擴充套件演算法

思路與演算法

複雜度分析

時間複雜度:o(n^2)

空間複雜度:o(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...