# 中心扩散法# 可能有两种情况,一种是回文串长度是奇数,中心只有一个数,一种是回文串长度是偶数,中心有两个数classSolution:deflongestPalindrome(self, s:str)->str:
n =len(s)
res =""for i inrange(n):
odd_pan, odd_len = self.panlidrome(s,i,i)
even_pan,even_len = self.panlidrome(s,i,i+1)
max_pan = odd_pan if odd_len > even_len else even_pan
res = max_pan iflen(max_pan)>len(res)else res
return res
defpanlidrome(self,s,l,r):while l>=0and r<len(s)and s[l]== s[r]:
l -=1
r +=1return s[l+1:r], r-l-1