class Solution(object):
def longestPalindrome(self, s):
"""
:type s: str
:rtype: str
"""
def panduan(l,r):
try:
while l > -1 and s[l] == s[r] :
l,r = l-1,r+1
except:
pass
return l+1,r,r-l
n = len(s)
if n == 1 or n == 0 : return s
low = high = 0
count = 0
for i in range(n):
if i < n - 1 and s[i] == s[i+1]:
if i > 0 and i < n - 2 and s[i-1] == s[i+2]:
l,r,temp = panduan(i-1,i + 2)
else:
l,r,temp = i,i+2,2
if temp > count:
low,high,count = l,r,temp
if i > 0 and i < n-1 and s[i-1] == s[i+1]:
l,r,temp = panduan(i - 1,i + 1)
if temp > count:
low,high,count = l,r,temp
if count == 0: return s[0]
return s[low:high]
最长回文子串
最新推荐文章于 2024-08-29 19:37:03 发布