(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...