5. Longest Palindromic Substring

Given a string s, return the longest palindromic substring in s.




def longestPalindrome(s: str) -> str:

    L = len(s)
    dp =  [[False]*L for _ in range(L)]

    for d in range(L):
        dp[d][d] = True    
       
    ans = s[0]
    max_len = 1

    for i in range(L):                
        for j in range(i):                
            if s[i] == s[j] and (dp[j+1][i-1] == True or i == j+1):
                dp[j][i] = True
                if i-j+1 > max_len:
                    max_len = i-j+1
                    ans = s[j:j+max_len]

    return ans

Comments

Popular posts from this blog

849. Maximize Distance to Closest Person

347. Top K Frequent Elements

139. Word Break