Given a string s, find the longest palindromic substring in s. You may assume that the maximum length of s is 1000.

Example 1:                             Input: "babad"                         Output: "bab"                      Note: "aba" is also a valid answer.

Example 2:                             Input: "cbbd"                           Output: "bb"

思路:最简单的办法是使用暴力破解法,依此遍历每一个字符(基数情况)和相邻的两个字符(偶数情况)的情况来对比前后是最长相等的字符串,最后返回结果。但是时间复杂度太高为O(n3),如果字符串太长会直接超时。

    第二种是使用动态规划,我们使用辅助数组来存储回文情况,如果在判断P(i, j)时,p(i+1, j-1)时是回文,我们就不用在进行判断,只需要判断S[i] == s[j ]即可。从而减少时间复杂为O(n2), 空间复杂度为O(n2)(空间换时间思路)。

   第三种思路是我们从头开始遍历,然后以此为中心考虑基数个数和偶数个数的时候,得出最长字符串的结果。这样复杂度为O(n2),空间复杂度为O(1)。

图示思路


          

代码解决


 class Solution(object):
def longestPalindrome(self, s):
"""
:type s: str
:rtype: str
"""
if len(s) < : # 长度小于2直接返回
return s
res_str = ''
for i in range(len(s)): # 从头开始遍历
tem = self.find_par(s, i, i) # 以基数的形式进行查找最长回文 if len(tem) > len(res_str): # 比较大小
res_str = tem tem = self.find_par(s, i, i+) # 以偶数形式进行查找
if len(tem) > len(res_str):
res_str = tem
return res_str # 返回结果 def find_par(self, s, start, end): # 查找函数
while start >= and end < len(s) and s[start] == s[end]: # 以当前小标为基准,前后移动,知道不相等或者前后超出范围为止。
start -=
end +=
return s[start+: end] # 返回结果字符串

  

【LeetCode每天一题】Longest Palindromic Substring(最长回文字串)的更多相关文章

  1. 5. Longest Palindromic Substring -- 最长回文字串

    Given a string S, find the longest palindromic substring in S. You may assume that the maximum lengt ...

  2. Leetcode5.Longest Palindromic Substring最长回文字串

    给定一个字符串 s,找到 s 中最长的回文子串.你可以假设 s 的最大长度为1000. 示例 1: 输入: "babad" 输出: "bab" 注意: &quo ...

  3. [LeetCode] Longest Palindromic Substring 最长回文串

    Given a string S, find the longest palindromic substring in S. You may assume that the maximum lengt ...

  4. Leetcode 5. Longest Palindromic Substring(最长回文子串, Manacher算法)

    Leetcode 5. Longest Palindromic Substring(最长回文子串, Manacher算法) Given a string s, find the longest pal ...

  5. leetcode 第五题 Longest Palindromic Substring (java)

    Longest Palindromic Substring Given a string S, find the longest palindromic substring in S. You may ...

  6. leetcode第五题--Longest Palindromic Substring

    Problem:Given a string S, find the longest palindromic substring in S. You may assume that the maxim ...

  7. [LeetCode] 5. Longest Palindromic Substring 最长回文子串

    Given a string s, find the longest palindromic substring in s. You may assume that the maximum lengt ...

  8. [leetcode]5. Longest Palindromic Substring最长回文子串

    Given a string s, find the longest palindromic substring in s. You may assume that the maximum lengt ...

  9. 【LeetCode】5. Longest Palindromic Substring 最长回文子串

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 公众号:负雪明烛 本文关键词:最长回文子串,题解,leetcode, 力扣,python ...

随机推荐

  1. nginx关闭目录浏览功能

    nginx图片服务器,因为图片的敏感度,不允许直接访问图片的目录: 需要修改配置文件,去掉 autoindex on; 重启nginx即可 location /soft { #autoindex on ...

  2. go 的文件处理

    准备一个文件 imooc.txt hello world! 一.使用 io/ioutil 包 定义一个 check 函数 func check(err error) { if err != nil { ...

  3. Android开发-基本概念(申明:来源于网络)

    Android开发-基本概念(申明:来源于网络) 地址:http://blog.csdn.net/iwanghang/article/details/53505926

  4. WebSphere Application Server V8.5.5.0

    Downloadable files Abstract IBM WebSphere Application Server Version 8.5.5 Refresh Pack for all plat ...

  5. d9

    # 整体进度# python基础 ——38天 2个月# 数据库 —— 存储数据和信息用的,本质上和文件没有区别 1-2周 # —— 增删改查更方便了# 前端 —— 2周# 框架 —— django 2 ...

  6. 温故KMP算法

    最近由于某些原因,又回顾了一次KMP算法.上一次回顾KMP算法还是在刷题的时候遇到的: http://blog.csdn.net/dacc123/article/details/50994611 在我 ...

  7. hdu3746 Cyclic Nacklace【nxt数组应用】【最小循环节】

    Cyclic Nacklace Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)T ...

  8. Kindle Paper White 使用感受视频上线啦!

    大家可以通过以下链接前往我的主页观看视频哦! https://www.youtube.com/watch?v=CESqzxTrAq4&t=322s 欢迎大家点赞.关注! 这期视频用iPhone ...

  9. { MySQL基础数据类型}一 介绍 二 数值类型 三 日期类型 四 字符串类型 五 枚举类型与集合类型

    MySQL基础数据类型 阅读目录 一 介绍 二 数值类型 三 日期类型 四 字符串类型 五 枚举类型与集合类型 一 介绍 存储引擎决定了表的类型,而表内存放的数据也要有不同的类型,每种数据类型都有自己 ...

  10. 存储空间消耗磁盘比较 int varchar date

    小结: 1.日期类型按照date存储节省空间,仅3字节,而按照字符串型char 8字节 20190316 ,  varchar  20190316 9字节: 2.对于小于32768的整数,按照smal ...