LeetCode 最長回文子串 Python

2021-08-19 21:31:28 字數 1065 閱讀 3443

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

一開始寫了暴力搜尋法,結果超時了,就上網找了答案,發現乙個部落格寫的很好,推薦

classsolution(object):

deflongestpalindrome(self, s):

""":types: str

:rtype: str

"""s ='#'+'#'.join(s)+'#'rl = [0]*len(s)

maxright = 0

pos = 0

maxlen = 0

foriinrange(len(s)):

ifi min(rl[2*pos-i], maxright-i)

else:

rl[i] = 1

whilei-rl[i]>=0

andi+rl[i]rl[i] += 1

ifrl[i] +i-1 >maxright:

maxright = rl[i]+i-1

pos = i

maxlen = max(maxlen,rl[i])

ifmaxlen == rl[i]:

maxlist = s[i-rl[i]+1:i+rl[i]]

returnmaxlist.replace("#",'')

其實不太明白為什麼回文子串只有自己的時候rl[i]=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...