5. Longest Palindromic Substring
Given a string s, find the longest palindromic substring in s. You may assume that the maximum length of s is 1000.
Example:
Input: "babad" Output: "bab" Note: "aba" is also a valid answer.Example:
Input: "cbbd" Output: "bb"本题要求找出字符串的最长回文子串,将结果分为两种情况:奇/偶数长度的字符串。挨个遍历字符串中的字符,将其作为对称中心,然后向字符串两端延展,看是否对称,最后取最大值。
第二次做:笨方法
class Solution(object): def longestPalindrome(self, s): """ :type s: str :rtype: str """ le = len(s) maxlen = 1 ans = "" if le == 0 else s[0] for i in range(le): l = r = i a = 1 # 奇数 while l > 0 and r < le - 1: r = r + 1 l = l - 1 if s[r] == s[l]: a = a+2 if a > maxlen: maxlen = a ans = s[l:r+1] else: break r = i l = i - 1 a = 0 # 偶数 while l >= 0 and r < le: if s[r] == s[l]: a = a+2 if a > maxlen: maxlen = a ans = s[l:r+1] r = r + 1 l = l - 1 else: break return ans
