
###判断是否为回文串可以用s==s[::-1]的方法
思路:长度递减,如果长度为max_length的子串中没有回文串,则查找长度为max_length-1的子串是否为回文串,如果查找到了直接返回,因为长度是递减的,所以第一个查找到的一定是最长的回文串。如果没有查找到,长度不断减小,直接减小到长度为1为止。
class Solution:
def longestPalindrome(self, s: str) -> str:
if len(s)<=1 or s==s[::-1] :
return s
if len(s)==len(set(s)):
return s[0]
max_length = len(s)-1
for length in range(len(s)-1,1,-1):
for i in range(len(s)-length+1):
if s[i:i+length] == s[i:i+length][::-1]:
return s[i:i+length]
return s[0]