LeetCode5-最长回文子串原理及Python实现
LeetCode5(medium)-最长回文子串
题目
给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。
思路
中心扩展法
遍历字符串,依次把每个字符作为中心。
- 中心为一个字符:中心一定是回文子串,如果左字符和右字符相同,那么扩展后的子串依然是回文子串。如果左字符和右字符不同,则扩展结束,记录当前回文子串位置。
- 中心为两个字符:如果两字符相同,则中心是回文子串,进行后续扩展;如果两字符不同,则中心不是回文子串,不用进行后续扩展,子串长度为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实现相关推荐
- LeetCode5. 最长回文子串
LeetCode5. 最长回文子串 给定一个字符串 s,找到 s 中最长的回文子串.你可以假设 s 的最大长度为 1000. 示例 1: 输入: "babad" 输出: " ...
- leetcode5. 最长回文子串(动态规划)
给定一个字符串 s,找到 s 中最长的回文子串.你可以假设 s 的最大长度为 1000. 示例 1: 输入: "babad" 输出: "bab" 注意: &qu ...
- leetcode5:最长回文子串
这个题目主要是运用manacher算法,又称为马拉车算法,下面对算法进行介绍. manacher算法 首先,定义一些变量,假设当前访问的是第ii个位置: 1.p[i]:1.p[i]:表示以第i ...
- LeetCode--5.最长回文子串(滑动窗口)
最长回文子串(C) 1. 题目描述 2. 题目分析 3. C语言实现 1. 题目描述 难度:中等 2. 题目分析 根据题目,需要注意的有以下几点: 回文子串 回文子串就是正着读和反着读是一样的,比如a ...
- python生成回文字符串_回文字符串最长回文子串和子序列 - Python
Palindrome 回文字符串就是指从前往后和从后往前读,都是一样的,比如"aabcbaa". 注意区分子串和子序列,子串是连续的,子序列可以不连续 题型1:判断字符串是否为回文 ...
- python最长回文子串leetcode_Python版LeetCode5. 最长回文子串
本文转载自[微信公众号:机器学习算法与Python精研,ID:AITop100]经微信公众号授权转载,如需转载与原文作者联系 题目: 给定一个字符串 s,找到 s 中最长的回文子串.你可以假设 s 的 ...
- leetcode--5. 最长回文子串
给定一个字符串 s,找到 s 中最长的回文子串.你可以假设 s 的最大长度为 1000. 示例 1: 输入: "babad" 输出: "bab" 注意: &qu ...
- Leetcode--5. 最长回文子串(java)
给定一个字符串 s,找到 s 中最长的回文子串.你可以假设 s 的最大长度为 1000. 示例 1: 输入: "babad" 输出: "bab" 注意: &qu ...
- 马拉车java_leetcode-5 最长回文子串-画蛇添足的马拉车算法
leetcode-5 最长回文子串 题目 给定一个字符串 s,找到 s 中最长的回文子串.你可以假设 s 的最大长度为 1000. 示例 1: 输入: "babad" 输出: &q ...
最新文章
- Mason 简单笔记
- MySQL优化篇:数据准备
- PHP输出表格的方法
- C# MBG 扩展方法类库 分享
- DB2安全(一)——概述
- @RequestParam 绑定List参数
- 乌班图配置mysql Java_Ubuntu准备+MySQL+Java
- 18. OD-反调试研究,破解反调试,编写反调试
- 剑指Offer之扑克牌顺子
- a标签点击不跳转的几种方法
- 【021】VS2010实现强类型DataSet
- idea解决Untracked Files Prevent Merge问题
- maya调磨砂教程_怎么用maya调磨砂玻璃的材质?
- matlab设置角度和弧度制,matlab 可不可以用角度制不用弧度制?
- 采集淘宝商品的销量、交易量-方维
- 中国互联网+化妆品行业深度调研及投资机会分析报告
- 新人 天池大数据初涉水
- ibm tivoli_集成Tivoli Directory Integrator和Lotus Connections
- matlab设置固定的窗宽窗位,【经验谈】如何设定窗宽窗位,附正常人体组织CT值...
- win10同账号多人远程破解
热门文章
- 使用Nomad和OpenFaaS提供FaaS服务
- Python操作Memcached
- 20. A *p=NULL,p 可以调用 A 类里面的函数嘛?
- oracle12c bug,Oracle12c R2注意事项: 因BUG生成大量的trace file 包含KRB: (rman module)
- mqtt linux 编译,MQTT客户端代码X64位Ubuntu环境编译+测试实践小结
- java按钮调用 后台方法_onclick怎么调用后台中的一个方法
- 开发商微信选房后不退认筹金_认筹金贸然转定金退不回 购房人认栽?
- ML:基于自定义数据集利用Logistic、梯度下降算法GD、LoR逻辑回归、Perceptron感知器、SVM支持向量机、LDA线性判别分析算法进行二分类预测(决策边界可视化)
- 成功解决raise ValueError(‘No model found in config file.‘) ValueError: No model found in config file.
- Python之pandas:pandas中数据处理常用函数(与空值相关/去重和替代)简介、具体案例、使用方法之详细攻略