資料結構之最長回文子串

2021-10-03 23:34:13 字數 1466 閱讀 5544

(leetcode刷題)

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

示例:輸入:"babad";輸出:"bab""aba"

輸入:"cbbd";輸出:"bb"

def

longestpalindrome

(self, s:

str)

->

str:

slen =

len(s)

# 長度小於2或等於2的時候字元相同,則返回給定字串

if slen <2or

(slen ==

2and s[0]

== s[1]

):return s

final = s[0]

for i in

range(0

, slen -1)

: rep1 = rep2 = s[i]

j =1# 尋找奇數回文子串

if s[i - j]

== s[i + j]

and i >0:

rep1 = s[i - j]

+ rep1 + s[i + j]

j +=

1while i - j >=

0and i + j <= slen -

1and s[i - j]

== s[i + j]

: rep1 = s[i - j]

+ rep1 + s[i + j]

j +=

1 j =

1# 尋找偶數回文子串

LintCode之最長回文子串

給出乙個字串 假設長度最長為1000 求出它的最長回文子串,你可以假定只有乙個滿足條件的最長回文串。樣例 給出字串 abcdzdcab 它的最長回文子串為 cdzdc public class solution if s.length 1 stringbuffer sb new stringbuff...

Leetcode之最長回文子串

給定乙個字串 s,找到 s 中最長的回文子串。你可以假設 s 的最大長度為 1000。示例 1 輸入 babad 輸出 bab 注意 aba 也是乙個有效答案。示例 2 輸入 cbbd 輸出 bb 思路很簡單,首先想到若情況為回文字串奇數個字元時,中間的字元為軸。比較兩邊的字元是否相同。當回文串字元...

動態規劃之最長回文子串

問題 給出乙個字串s,求s的最長回文子串的長度。樣例 字串 patzjujztaccbcc 的最長回文子串為 atzjujzta 長度為9。還是先看暴力解法 列舉子串的兩個端點i和j,判斷在 i,j 區間內的子串是否回文。從複雜度上來看,列舉端點需要0 n2 判斷回文需要0 n 因此總複雜度是o n...