leetcode

Leetcode Solutions (0x6A73)
git clone https://git.pngu.org/leetcode
Log | Files | Refs | Submodules | README

longest_palindromic_substr.py (762B)


# 5. Longest Palindromic Substring

"""
given a string 's', return the longest palindromic substring in 's'
"""


class Solution(object):
    def helper(self, s, l, r):
        while l >= 0 and r < len(s) and s[l] == s[r]:
            l -= 1
            r += 1
        return s[l + 1 : r]

    def longestPalindrome(self, s):
        ans = ""
        for i in range(len(s)):
            tmp = self.helper(s, i, i)
            if len(tmp) > len(ans):
                ans = tmp
            tmp = self.helper(s, i, i + 1)
            if len(tmp) > len(ans):
                ans = tmp
        return ans


if __name__ == "__main__":
    obj = Solution()
    print(obj.longestPalindrome("babad"))  # expect: bab
    print(obj.longestPalindrome("cbbd"))  # expect: bb