給定乙個字串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 很明顯可以使用暴力破解,也可以使用動態規劃,但是還是馬拉車演算法比較靠譜,但是我這裡只是有了...