Leetcode练习(Python):字符串类:第5题:最长回文子串:给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。

题目:
最长回文子串:给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。
思路:
思路较简单,需要考虑回文是奇数还是偶数的情况,但是小坑多,得一一调。
程序:
class Solution:
    def longestPalindrome(self, s: str) -> str:
        if not s:
            return s
        length = len(s) 
        if length == 1:
            return s
        if length > 1000:
            return null
        result = ''
        auxiliary = 0
        for index in range(1, length):
            index1 = index - 1
            index2 = index
            while index1 >= 0 and index2 < length and s[index1] == s[index2]:
                index1 -= 1
                index2 += 1
            if index2 - index1 + 1 > auxiliary:
                auxiliary = index2 - index1 + 1
                result = s[index1 + 1: index2]
            index3 = index - 1
            index4 = index + 1
            while index3 >= 0 and index4 < length and s[index3] == s[index4]:
                index3 -= 1
                index4 += 1
            if index4 - index3 + 1 > auxiliary:
                auxiliary = index4 - index3 + 1
                result = s[index3 + 1: index4]
        return result