leetcode Longest Palindromic Substring python

class Solution(object):
    def longestPalindrome(self, s):
        """
        :type s: str
        :rtype: str
        """
        lenStr = len(s)
        if lenStr <= 0:
            return 0
        maxLen = 0
        tmpLen = 0
        tmpRes = ''
        for i in range(0,lenStr):
            
            #odd numbers
            j=0
            tmpLen=0
            while i-j >= 0 and i+j < lenStr and s[i-j] == s[i+j]:
                tmpLen = 2*j +1
                j+=1
            if tmpLen > maxLen:
                maxLen = tmpLen
          #i-j+1 plus one because first: j+=1 then judge s[i-j] == s[i+i]
                #so when the while cycle stop, the j is bigger one than the j that make while condition establish 
                tmpRes = s[i-j+1:i+j]
            #even numbers
            j=0
            tmpLen=0
            while i-j>=0 and i+j+1 < lenStr and s[i-j] == s[i+j+1]:
                tmpLen = 2*j + 2
                j+=1
            if tmpLen > maxLen:
                maxLen = tmpLen
                tmpRes = s[i-j+1:i+j+1]
        return tmpRes
 
原文地址:https://www.cnblogs.com/allenhaozi/p/4948105.html