class Solution:#5. 最长回文子串 leetcode
def longestPalindrome(self, s: str) -> str:
p = ''
for i in range(len(s)):
len1 = len(self.ge(s,i,i))#return b intput cbc
if len1 > len(p):
p = self.ge(s,i,i)
len2 = len(self.ge(s,i,i+1))#return bb input abba
if len2 > len(p):
p = self.ge(s,i,i+1)
return p
def ge(self,s,l,r):
while l >= 0 and r < len(s) and s[l] == s[r]:#要么越界,要么不等了
l -= 1#左扩散
r += 1#右扩散
return s[l+1 : r]#如果只输入了1个s i = 0 l = r = 0 满足条件,l- = -1,r+ = 1 ,此时越界,返回
#返回 s[-1+1:1] s[0:1] 只取左边0,不取右边1,就是s[0] len(s[0]) = 1 > len(p)=0