LeetCode005 最長回文子串

2021-09-22 04:10:17 字數 914 閱讀 2813

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

示例 1:

輸入:"babad"輸出:"bab"注意:"aba" 也是乙個有效答案。
示例 2:

輸入:"cbbd"輸出:"bb"
class solution(object):

def longestpalindrome(self, s):

start = end = 0

for i in range(len(s)):

len1 = self.centerexpand(s,i,i)

len2 = self.centerexpand(s,i,i+1)

maxlen = max(len1,len2)

if maxlen > end - start + 1:

start = i - (maxlen-1)//2

end = i + maxlen//2

return s[start:end+1]

def centerexpand(self,s,l,r):

while l >= 0 and r < len(s) and s[l] == s[r]:

l -= 1#計算到l=-1

r += 1

return r-l-1

s = solution()

str = s.longestpalindrome('bab')

print(str)

leetcode 005 最長回文子串

思路和003很相似,003是找最長的不重複序列,並返回長度 對於外迴圈的每乙個i,判斷它後面的每乙個j,是否能使得s i 到s j 構成回文序列 如果構成了回文序列,count儲存此時的回文序列長度,out儲存的是程式到現在為止 已經得到的最大長度 如果count out了,out count,並讓...

leetcode005(暴力解法 動態規劃法)

最慢 找到每個字元為起始的所有回文串,並儲存最長的 演算法上難以實現?假設取第乙個字元,那麼必須判斷到1 2長度之後,才能確定有無回文串 效率太低 能否考慮按照特定字元作為起始,來找回文串 假設第乙個字元為a,從字串末尾找另乙個a,並判斷夾在中間的是不是回文串 若不是,繼續向前找下乙個a,再次判斷 ...

LeetCode 最長回文串

題目 給定乙個包含大寫字母和小寫字母的字串,找到通過這些字母構造成的最長的回文串。在構造過程中,請注意區分大小寫。比如 aa 不能當做乙個回文字串。注意 假設字串的長度不會超過 1010。示例 1 輸入 abccccdd 輸出 7 解釋 我們可以構造的最長的回文串是 dccaccd 它的長度是 7。...