LeetCode5(medium)-最长回文子串

题目

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

思路

中心扩展法
遍历字符串,依次把每个字符作为中心。

  1. 中心为一个字符:中心一定是回文子串,如果左字符和右字符相同,那么扩展后的子串依然是回文子串。如果左字符和右字符不同,则扩展结束,记录当前回文子串位置。
  2. 中心为两个字符:如果两字符相同,则中心是回文子串,进行后续扩展;如果两字符不同,则中心不是回文子串,不用进行后续扩展,子串长度为1.

遍历结束,输出最长的回文子串即可。

class Solution:#1180ms 70.74%def getLength(self,s,left,right):while left>=0 and right<len(s) and s[left]==s[right]:left-=1right+=1left+=1right-=1return left,rightdef longestPalindrome(self, s: str) -> str:start,end=0,0for center in range(len(s)):left,right=self.getLength(s,center,center)if right-left>end-start:start,end=left,rightleft, right = self.getLength(s, center, center+1)if right - left > end - start:start, end = left, rightreturn s[start:end+1]

LeetCode5-最长回文子串原理及Python实现相关推荐

  1. LeetCode5. 最长回文子串

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

  2. leetcode5. 最长回文子串(动态规划)

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

  3. leetcode5:最长回文子串

      这个题目主要是运用manacher算法,又称为马拉车算法,下面对算法进行介绍. manacher算法   首先,定义一些变量,假设当前访问的是第ii个位置: 1.p[i]:1.p[i]:表示以第i ...

  4. LeetCode--5.最长回文子串(滑动窗口)

    最长回文子串(C) 1. 题目描述 2. 题目分析 3. C语言实现 1. 题目描述 难度:中等 2. 题目分析 根据题目,需要注意的有以下几点: 回文子串 回文子串就是正着读和反着读是一样的,比如a ...

  5. python生成回文字符串_回文字符串最长回文子串和子序列 - Python

    Palindrome 回文字符串就是指从前往后和从后往前读,都是一样的,比如"aabcbaa". 注意区分子串和子序列,子串是连续的,子序列可以不连续 题型1:判断字符串是否为回文 ...

  6. python最长回文子串leetcode_Python版LeetCode5. 最长回文子串

    本文转载自[微信公众号:机器学习算法与Python精研,ID:AITop100]经微信公众号授权转载,如需转载与原文作者联系 题目: 给定一个字符串 s,找到 s 中最长的回文子串.你可以假设 s 的 ...

  7. leetcode--5. 最长回文子串

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

  8. Leetcode--5. 最长回文子串(java)

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

  9. 马拉车java_leetcode-5 最长回文子串-画蛇添足的马拉车算法

    leetcode-5 最长回文子串 题目 给定一个字符串 s,找到 s 中最长的回文子串.你可以假设 s 的最大长度为 1000. 示例 1: 输入: "babad" 输出: &q ...

最新文章

  1. Mason 简单笔记
  2. MySQL优化篇:数据准备
  3. PHP输出表格的方法
  4. C# MBG 扩展方法类库 分享
  5. DB2安全(一)——概述
  6. @RequestParam 绑定List参数
  7. 乌班图配置mysql Java_Ubuntu准备+MySQL+Java
  8. 18. OD-反调试研究,破解反调试,编写反调试
  9. 剑指Offer之扑克牌顺子
  10. a标签点击不跳转的几种方法
  11. 【021】VS2010实现强类型DataSet
  12. idea解决Untracked Files Prevent Merge问题
  13. maya调磨砂教程_怎么用maya调磨砂玻璃的材质?
  14. matlab设置角度和弧度制,matlab 可不可以用角度制不用弧度制?
  15. 采集淘宝商品的销量、交易量-方维
  16. 中国互联网+化妆品行业深度调研及投资机会分析报告
  17. 新人 天池大数据初涉水
  18. ibm tivoli_集成Tivoli Directory Integrator和Lotus Connections
  19. matlab设置固定的窗宽窗位,【经验谈】如何设定窗宽窗位,附正常人体组织CT值...
  20. win10同账号多人远程破解

热门文章

  1. 使用Nomad和OpenFaaS提供FaaS服务
  2. Python操作Memcached
  3. 20. A *p=NULL,p 可以调用 A 类里面的函数嘛?
  4. oracle12c bug,Oracle12c R2注意事项: 因BUG生成大量的trace file 包含KRB: (rman module)
  5. mqtt linux 编译,MQTT客户端代码X64位Ubuntu环境编译+测试实践小结
  6. java按钮调用 后台方法_onclick怎么调用后台中的一个方法
  7. 开发商微信选房后不退认筹金_认筹金贸然转定金退不回 购房人认栽?
  8. ML:基于自定义数据集利用Logistic、梯度下降算法GD、LoR逻辑回归、Perceptron感知器、SVM支持向量机、LDA线性判别分析算法进行二分类预测(决策边界可视化)
  9. 成功解决raise ValueError(‘No model found in config file.‘) ValueError: No model found in config file.
  10. Python之pandas:pandas中数据处理常用函数(与空值相关/去重和替代)简介、具体案例、使用方法之详细攻略