1. 程式人生 > >leetcode 5最長的迴文子串

leetcode 5最長的迴文子串

‘’’
給定一個字串 s,找到 s 中最長的迴文子串。你可以假設 s 的最大長度為1000。

示例 1:

輸入: “babad”
輸出: “bab”
注意: "aba"也是一個有效答案。
示例 2:

輸入: “cbbd”
輸出: “bb”
‘’’

class Solution:
    def longestPalindrome(self, s):
        """
        :type s: str
        :rtype: str
        """
        res = ''
        if len(set(s)) == 1:
            return s
        for i in range(len(s)):
            tmp = self.helper(s, i, i)                  #針對‘aba’型別
            if len(tmp) > len(res):
                res = tmp
            tmp = self.helper(s, i, i + 1)              #針對‘abba’型別
            if len(tmp) > len(res):
                res = tmp
        return res

    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]

在這裡插入圖片描述