问题描述:给定一个字符串 s
,找到 s
中最长的回文子串。你可以假设 s
的最大长度为 1000。
解题思路:从中间向两边进行判断
class Solution(object): def longestPalindrome(self, s): """ :type s: str :rtype: str """ maxpa = '' for i in range(len(s)): #奇数形式,例如‘bab’ tmp = self.palindromic(s, i, i) if len(tmp) > len(maxpa): maxpa = tmp #偶数形式,例如‘abba’ tmp = self.palindromic(s, i, i+1) if len(tmp) > len(maxpa): maxpa = tmp return maxpa #定义一个判断并返回最大子回文字符串的函数 def palindromic(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]