最长回文子串

最长回文子串

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

示例 1:

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

示例 2:

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

class Solution:

    lenght = 0;

    def longestPalindrome(self, s):

        """

        :type s: str

        :rtype: str

        """

        self.lenght = len(s)

        maxLenght = 0

        maxCode =""

        for index in range(self.lenght):

            result1 = self.checkIJ(s, index,index+1)

            result2 = self.checkIJ(s, index-1, index+1)

            result1_lenght = 0

            if result1:

                result1_lenght = len(result1)

            result2_lenght = 0

            if result2:

                result2_lenght = len(result2)

            if result1_lenght>maxLenght:

                maxLenght = result1_lenght

                maxCode = result1

            if result2_lenght>maxLenght:

                maxLenght = result2_lenght

                maxCode = result2

        return maxCode

    def checkIJ(self, s, i, j):

        """

        :param s:  数据

        :param i:  左下标

        :param j:  右下标

        :return:

        """

        if i>=0 and j<self.lenght:

            if s[i] == s[j]:

                return self.checkIJ(s, i-1, j+1)

            else:

                return s[i+1:j]

        else:

            return s[i + 1:j]

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容