Skip to content

Latest commit

 

History

History
34 lines (32 loc) · 945 Bytes

5.md

File metadata and controls

34 lines (32 loc) · 945 Bytes

#5. Longest Palindromic Substring 题目链接

class Solution(object):
    start = maxLength = 0
    def findPalindrome(self, s, i, j):
        """
        :param s: str
        :param i: int
        :param j: int
        :return: 
        """
        while i >= 0 and j < len(s) and s[i] == s[j]:
            i -= 1
            j += 1
        length = j - i - 1
        if length > self.maxLength:
            self.maxLength = length
            self.start = i + 1

    def longestPalindrome(self, s):
        """
        :type s: str
        :rtype: str
        """
        if len(s) <= 2:
            return s
        # 遍历字符串计算,分奇数情况和偶数情况
        for i in range(len(s)):
            self.findPalindrome(s, i, i)
            self.findPalindrome(s, i, i + 1)
        return s[self.start: self.start + self.maxLength]