M-5. Longest Palindromic Substring

# O(n^2), O(1)
class Solution:
    def longestPalindrome(self, s: str) -> str:
        if not s:
            return ''
        
        def check(left, right):
            while left >= 0 and right <len(s) and s[right] == s[left]:
                left -= 1
                right += 1
            
            return s[left+1:right]
        
        res = ''
        for i in range(len(s)-1):
            res = max(check(i,i), check(i,i+1), res, key=len)
        
        return res

Last updated

Was this helpful?