给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为1000。
示例 1:
输入: "babad"
输出: "bab"
注意: "aba"也是一个有效答案。
示例 2:
输入: "cbbd"
输出: "bb"
从max_len = 2 开始找,找到2再找3
class Solution(object):
def longestPalindrome(self, s):
"""
:type s: str
:rtype: str
"""
if len(s)==0:
return 0
maxLen=1
start=0
for i in range(len(s)): # 0
if i-maxLen >=1 and s[i-maxLen-1:i+1]==s[i-maxLen-1:i+1][::-1]: # 奇
start=i-maxLen-1
maxLen+=2
elif i-maxLen >=0 and s[i-maxLen:i+1]==s[i-maxLen:i+1][::-1]: # 偶
start=i-maxLen
maxLen+=1
return s[start:start+maxLen]
网友评论