16 - Medium - 最长回文子串

2018-04-23  本文已影响0人  1f872d1e3817

给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为1000。

示例 1:

输入: "babad"
输出: "bab"
注意: "aba"也是一个有效答案。
示例 2:

输入: "cbbd"
输出: "bb"

从max_len = 2 开始找,找到2再找3

class Solution(object):
    def longestPalindrome(self, s):
        """
        :type s: str
        :rtype: str
        """
        if len(s)==0:
            return 0
        maxLen=1
        start=0
        for i in range(len(s)):  # 0
            if i-maxLen >=1 and s[i-maxLen-1:i+1]==s[i-maxLen-1:i+1][::-1]:  # 奇
                start=i-maxLen-1
                maxLen+=2
            elif i-maxLen >=0 and s[i-maxLen:i+1]==s[i-maxLen:i+1][::-1]:  # 偶
                start=i-maxLen
                maxLen+=1
        return s[start:start+maxLen]
上一篇 下一篇

猜你喜欢

热点阅读