class Solution: def longestPalindrome(self, s: str) -> str: if len(s) <= 1: return s dp = [[False for _ in range(len(s))] for _ in range(len(s))] max_length = 1 max_string = s[0] for i in range(len(s)): dp[i][i] = True for j in range(i): if s[j] == s[i] and (i-j <= 2 or dp[j+1][i-1]): dp[j][i] = True if i-j+1 > max_length: max_length = i-j+1 max_string = s[j:i+1] return max_string