zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    Numpy库
    使用Python的pandas-datareader包下载雅虎财经股价数据
    python引用库异常总结
    桌面常用快捷键
    第四章 数据的概括性度量
    第三章 数据的图表展示
    python连接MySql数据库
    如何利用scrapy新建爬虫项目
    幼儿教育
    PyMySQL和MySQLdb的区别
  • 原文地址:https://www.cnblogs.com/zhuozige/p/12842504.html
Copyright © 2011-2022 走看看