5 最長回文子串

2021-08-22 10:10:55 字數 1144 閱讀 3621

給定乙個字串s,找到s中最長的回文子串。你可以假設s的最大長度為1000。

示例 1:

輸入:"babad"輸出:"bab"注意:"aba"也是乙個有效答案。
示例 2:

輸入:"cbbd"輸出:"bb"
class solution:

def longestpalindrome(self, s):

k = len(s)

olist = [0] * k # 申請長度為n的列表,並初始化

nlist = [0] * k # 同上

logestsubstr = ""

logestlen = 0

for j in range(0, k):

for i in range(0, j + 1):

if j - i <= 1:

if s[i] == s[j]:

nlist[i] = 1 # 當 j 時,第 i 個子串為回文子串

len_t = j - i + 1

if logestlen < len_t: # 判斷長度

logestsubstr = s[i:j + 1]

logestlen = len_t

else:

if s[i] == s[j] and olist[i+1]: # 當j-i>1時,判斷s[i]是否等於s[j],並判斷當j-1時,第i+1個子串是否為回文子串

nlist[i] = 1 # 當 j 時,第 i 個子串為回文子串

len_t = j - i + 1

if logestlen < len_t:

logestsubstr = s[i:j + 1]

logestlen = len_t

olist = nlist # 覆蓋舊的列表

nlist = [0] * k # 新的列表清空

return logestsubstr

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 這道題比較船艇的應該是dp求法,但鄙人的dp特別特別的差勁。所以我選用中心擴充套件演算法,掃一遍所有節點,把被掃...

5 最長回文子串

題目描述 給定乙個字串 s,找到 s 中最長的回文子串。你可以假設 s 的最大長度為 1000。示例 1 輸入 babad 輸出 bab 注意 aba 也是乙個有效答案。示例 2 輸入 cbbd 輸出 bb 很明顯可以使用暴力破解,也可以使用動態規劃,但是還是馬拉車演算法比較靠譜,但是我這裡只是有了...