問題描述:找出字串中最長的回文子串
輸入:字串s
輸出:輸出最長的回文子串
思考:1、最直接的就是以乙個字元或者兩個字元為中心,兩邊擴散,直到遇到不同的字串為止。以乙個字元為中心,那麼就是aba型,兩個字元為中心就是abba型。
class solution:
def longestpalindrome(self, s:str)->str:
n=len(s)
count=0
res=''
for i in range(n):
# aba
j,k=i,i
while j>=0 and kcount:
count=k-j+1
res=s[j:k+1]
j-=1
k+=1
else:
break
# abba
j,k=i,i+1
while j>=0 and kcount:
count=k-j+1
res=s[j:k+1]
j-=1
k+=1
else:
break
return res
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 class solution def longestpalindrome self,s k len s olist...
5 最長回文子串
給定乙個字串s,找到s中最長的回文子串。你可以假設s的最大長度為 1000。示例 1 輸入 babad 輸出 bab 注意 aba 也是乙個有效答案。示例 2 輸入 cbbd 輸出 bb 這道題比較船艇的應該是dp求法,但鄙人的dp特別特別的差勁。所以我選用中心擴充套件演算法,掃一遍所有節點,把被掃...