每日一题:最长回文子串

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

示例 1:

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

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

**

解题思路

**
取反转字符串,与原字符串对比

例:
‘aebcbe’

第一大轮:

第一小轮:aebcbe 与 ebcbea比较
第二小轮:aebcb 与 bcbea比较

第一大轮结果:a

第二大轮结果:e

第三大轮:

第一小轮:bcbe 与 ebcb 比较
第二轮:bcb 与 bcb 比较
第三大轮结果:bcb

代码

class Solution(object):
    def longestPalindrome(self, s):
        """
        :type s: str
        :rtype: str
        """
        sstr = s
        result = []
        leng = len(s)
        for i in range(0,leng):
            sstr=s[i:leng]
            flagStr=sstr[::-1]
            sLen = len(sstr)
            for  i in range(0,sLen):
                if(sstr[0:sLen-i] == flagStr[i:sLen]):
                    res=sstr[0:sLen-i]
                    break
            result.append(res)

        resStr = ''
        for  i in range(0,len(result)):
            if(len(result[i]) > len(resStr)):
                resStr = result[i]

        return resStr

你可能感兴趣的:(python,每日一题)