中心扩散,如果两边的字母相同,就可以继续扩展;如果两边的字母不同,就停止扩展
class Solution(object):
"""调用此处提供下标"""
def xh(self,s,i,j):
while i>=0 and j<len(s) and s[i] == s[j]:
i -= 1
j +=1
return i+1,j-1
"""遍历奇偶,找最长"""
def longestPalindrome(self, s):
"""
:type s: str
:rtype: str
"""
start = 0
end = 0
m = len(s)
i = 0
for i in range(m):
s1,e1 = self.xh(s,i,i)
s2,e2 = self.xh(s,i,i+1)
if e1 - s1 > end - start:
end = e1
start = s1
if e2 - s2 > end -start:
end = e2
start = s2
return s[start:end+1]