题目需要思路:如果a是回文串,那么如果a的左边字符=a的右边字符,[a左边的字符+a右边的字符+a]也是回文串.同样,如果bab是一个回文串,那么如果最左边b的左边字符=最右边b的右边字符,那么[最左边b的左边字符+bab+最右边b的右边字符]也是一个回文串,所以可以写一个函数get_str,给定已知回文子串的最小下标和最右下标,然后横向展开,找到回文串。例如字符串s="babad",b的下标为2,b为回文子串,则用2作为字符串left的左下标,2作为字符串right的右下标at时间,让函数get_str去从左到右查找,如果left>0andrightstr:defget_str(left,right,s):whileleft>=0andrightend-start:start,end=left1,right1ifright2-left2>end-start:start,end=left2,right2returns[start:end+1]完整代码类解:deflongestPalindrome(self,s:str)->str:defget_str(left,右,s):whileleft>=0andrightend-start:start,end=left1,right1如果right2-left2>end-start:start,end=left2,right2返回s[start:end+1]