【Leetcode-python】5.Longest Palindromic Substring(最长的回文子串)

【力扣:Leetcode题解系列之0005. Longest Palindromic Substring:最长回文子串解题全析】 本文全面解析了力扣第5题"最长回文子串"的三种解法:暴力遍历(O(n³))、动态规划(O(n²))和马拉车算法(O(n))。通过Python、Java、C++等语言实现,详细分析了各方法的时间空间复杂度。暴力法简单直接但效率低;动态规划利用子问题优化;马拉车算法则在线性时间内解决问题。文章还提供了代码示例,帮助理解不同解法的优劣,为处理类似回文问题提供了清晰的解题思路。 阅读详情

题目:给定一个字符串s,找到它的最长的回文子串。假设s的最大长度为1000。
例:Input: "babad" Output: "bab"  Note: "aba" is also a valid answer.
       Input: "cbbd"   Output: "bb"

回文字符串就是指前后是对称的字符串。

需要考虑的特殊情况:
1. Input: ""  Output: "" ;
2. Input: "a"  Output: "a" ;
3. Input: "ab"  Output: "a"  或者 "b";

方法一:最简单的思路就是遍历找到所有子串,判断子串是不是回文子串,再从中找到最长回文子串(将回文子串存储在字典中),但是时间复杂度高,为O(n^2)。

class Solution:
    def longestPalindrome(self, s: str) -> str:
        len_s=len(s)
        if len_s<=1:
            return s
        maxlen=0
        dic={}
        for i in range(len_s):
            for j in range(i,len_s):
                if s[i:j+1]==s[i:j+1][::-1]:
                    if maxlen<(j-i+1):
                        dic[j-i+1]= s[i:j+1]
                    maxlen=max(maxlen,j-i+1)
        if dic:
            return dic[max(list(dic.keys()))]
        else:
            return

   
方法二:先遍历回文串的中心s[i],然后向两边扩展看是否对称,L,R分别表示左右指针。如果lenS - i <= maxLen / 2,说明以i为中心的回文子串长度都不会超过maxLen,直接跳出循环。此外,要考虑如果长度为偶数值的回文子串中心有两个。

class Solution:
    def longestPalindrome(self, s: str) -> str:
        lenS = len(s)
        if lenS <= 1:
            return s
        minStart, maxLen, i = 0, 1, 0
        while i < lenS:
            if lenS - i <= maxLen / 2:
                break
            L, R = i, i
            while R < lenS - 1 and s[R] == s[R + 1]: 
                R += 1
            i = i + 1
            while R < lenS - 1 and L and s[R + 1] == s[L - 1]: 
                R, L = R + 1, L - 1
            if R- L + 1 > maxLen: 
                minStart, maxLen = L, R - L + 1
        return s[minStart: minStart + maxLen]
        

AniME框架深度体验:用AI自动生成《修真小说》动画全流程记录 本文详细记录了使用开源多智能体框架AniME,结合其核心动画生成模型AniSora V3,将一段修真小说文本自动转化为风格统一动画视频的全流程实战。文章深入解析了从环境搭建、导演智能体任务分解,到多智能体协作生成分镜、角色、动画及最终合成的每一步操作与挑战,为AI驱动的长视频创作提供了宝贵的实践经验与流程优化思路。 阅读详情

相关推荐

MRI多序列,多中心数据集预处理--使用FSL-Flirt 配准数据

FLIRT(FMRIB 的线性图像配准工具)是用于线性(仿射)模态内和模态间脑图像配准的全自动稳健且准确的工具。 什么是配准 在这两张图片上,很容易看出它们没有对齐,左边相对右边倾斜,虽然我们人类视觉系统还是能把对应的解剖关系连系在一起,但是我们使用计算机分析时确不能够 因此,我们希望相同的解剖结构对齐,用坐标表示的话,希望他们在相同的坐标上。如下图 对齐这些解剖结构的过程就叫做配准(register) 因此,配准的目的也是使相同的解剖结构在同一个位置,便于分析。可以将CT和MRI配准,看同一结构在两个

Tina姐的博客 1万+

【LeetCode】【5. Longest Palindromic Substring】(python版)

Description: 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: &amp;amp;quot;babad&amp;amp;quot; Output: &amp;amp;quot;bab&amp;amp;quot; Note: &amp;a

SevenEleven的博客 451

英飞凌AURIX™ TC3xx系列MCU的ISO 26262安全机制实战:从安全手册到代码集成的避坑指南

本文深入探讨英飞凌AURIX™ TC3xx系列MCU的ISO 26262安全机制实战应用,重点解析锁步核配置、ECC策略优化及SafeTlib库集成中的关键问题。通过代码示例和配置建议,帮助开发者实现ASIL D级别安全性,规避常见陷阱,提升汽车电子系统的功能安全合规性。

weixin_42558093的博客 404

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

【LeetCode】5. Longest Palindromic Substring 解题报告(Python) 标签: LeetCode 题目地址:https://leetcode.com/problems/longest-palindromic-substring/description/ 题目描述: Given a string s, find the longest palind...

负雪明烛 7775

【飞控】UAV Toolbox Support Package for PX4 Autopilots安装与配置

安装配置UAV Toolbox Support Package for PX4 Autopilots硬件安装包

m0_58373406的博客 1613

C#报表,使用微软rdlc模板,生成Excel, PDF, Word, Image文件,使用自定义对象做数据集不连接数据库

我项目是用vs2017 建的,.NET farmwork 4.7.2 这种报表可以用于任何模式的应用,web,桌面,因为这只是生成一个文件或者文件流 步骤比较详细啰嗦,其中有讲到rdlc怎么新建设计,如果已经会设计rdlc了的可以直接跳到底部看代码的执行结果, 底部还有源码下载链接,百度盘 首先控制台安装报表包 新建rdlc 报表 建立rdlc里要用的数据模型 模型建完,或者修改都要重新...

qq_35955916的博客 5202

Python 刷题日记:LeetCode 5&9&516- Longest Palindromic Substring 题集合

原题:LeetCode 5 Longest Palindromic Substring: Given a string s, find the longest palindromic substring in s. You may assume that the maximum length of s is 1000.Example:Input: "babad"Output: "bab"No

二当家的掌柜 1895

免费教你快速学会分析运算放大器电路(保证学会)

本文旨在学习如何快速简单地对运算放大器进行分析

一名热爱技术的工程师的博客。分享技术干货,记录美好生活。永远相信美好的事情即将发生。 1万+

LeetCode 5. Longest Palindromic Substring 最长回文子串 Python 四种解法(Manacher 动态规划)

Longest Palindromic Substring 最长回文子串 学习笔记 1. Brute method 第一种方法:直接循环求解,o(n2)o(n^2) class Solution: def longestPalindrome(self, s): """ :type s: str :rtype: str

小鹅鹅的博客 1万+

基于UC3842的反激电源的全面深入解析与MATLAB仿真

内置电流检测,可实现电流模式控制,提高系统的动态响应性。多种保护功能,如欠压锁定、过温保护、短路保护等,确保系统的安全可靠运行。宽工作电压范围,适应不同的电源设计需求。简单的外部元件配置,易于实现。UC3842的典型应用包括开关电源、DC-DC转换器和反激式电源等,其稳定性和可靠性在实际应用中得到了广泛验证。

qq_38334677的博客 1086

QT里获取UUID当做唯一文件名称

QT里获取UUID当做唯一文件名称

542

LeetCode(5)-Python-最长回文子串(longest-palindromic-substring)

题目描述 给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。 示例 1: 输入: “babad” 输出: “bab” 注意: “aba” 也是一个有效答案。 示例 2: 输入: “cbbd” 输出: “bb” 解决思路1 回文字符串,就是顺序读取和逆序读取的结果是一样的,比如“上海自来水来自海上”,我们在判断回文字符串的时候,可以认为回文字符串都是有一个中心的...

Paul_wang的博客 2902

基于 Python + Flask + Echarts 的疫情监控系统

基于 Python + Flask + Echarts 的疫情监控系统

743

【leetcode】#字符串【Python】5. Longest Palindromic Substring 最长回文子串

链接: https://leetcode-cn.com/problems/longest-palindromic-substring/ 题目: 给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。 示例 1: 输入: “babad” 输出: “bab” 注意: “aba” 也是一个有效答案。 示例 2: 输入: “cbbd” 输出: “bb” 解法1...

风轻扬逍遥子的博客 460

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

leetcode 5. longest-palindromic-substring 最长回文子串 python3

时间:2020-6-21 题目地址:https://leetcode-cn.com/problems/longest-palindromic-substring/ 题目难度:Medium 题目描述: 给定一个字符串 s,找到 s 中最长的回文子串。你可以假设s 的最大长度为 1000。 示例 1: 输入: "babad" 输出: "bab" 注意: "aba" 也是一个有效答案。 示例 2: 输入: "cbbd" 输出: "bb" 思路1:暴力破解 代码段1:45/103 超时 天呀 .

isabloomingtree的博客 260

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

[转载]LeetCode(5)-Python-最长回文子串(longest-palindromic-substring)

题目描述 给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。 示例 1: 输入: “babad” 输出: “bab” 注意: “aba” 也是一个有效答案。 示例 2: 输入: “cbbd” 输出: “bb” 解决思路1 回文字符串,就是顺序读取和逆序读取的结果是一样的,比如“上海自来水来自海上”,我们在判断回文字符串的时候,可以认为回文字符串都是有一个中心的...

u013310037的博客 171

LeetCode 5. Longest Palindromic Substring 题解

本题是回文子串问题的经典题目。中心扩展法:考虑奇数和偶数长度动态规划:状态转移记录最长回文的起始和结束位置通过本题可以深入理解回文问题的解决方法。

cannonjinx的博客 1935

Leetcode 5.最长回文子串(Longest Palindromic Substring)

Leetcode 5.最长回文子串 1 题目描述(Leetcode题目链接)   给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。示例: 输入: "babad" 输出: "bab" 注意: "aba" 也是一个有效答案。 2 题解   本题可以使用动态规划的方法,子串不是子序列,需要连续,因此可以定义DP[i][j]DP[i][j]DP[i][j]为字符i...

qq_39378221的博客 430

[ LeetCode ] 5. Longest Palindromic Substring (C++ & Python)

题目: 5. Longest Palindromic Substring 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" No...

xn's blog 555

LeetCode 5. 最长回文子串(Longest Palindromic Substring)

LeetCode.jpg 5. 最长回文子串 5. 最长回文子串 给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。 示例 1: 输入: "babad" 输出: "bab" 注意: "aba" 也是一个有效答案。 示例 2: 输入: "cbbd" 输出: "bb" 切题 一、Clarification 求最长回文子串,这里有几个特殊情况...

墨1024 302

LeetCode之(5)最长回文子串(Longest Palindromic Substring)

0005.最长回文子串(Longest Palindromic Substring)题目描述题目分析代码实现C++JavaPython 题目描述 给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。 示例 1: 输入: "babad" 输出: "bab" 注意: "aba" 也是一个有效答案。 示例 2: 输入: "cbbd" 输出: "bb" 题目分析 对于空串来说,最长的回文子串就是空串,对于非空的字符串来说,最小的最长回文子串是字符串中任意一个字符。 回文子串的

euy的博客 302

[LeetCode] 005. Longest Palindromic Substring (Medium) (C++/Java/Python)

[LeetCode] 005. Longest Palindromic Substring (Medium) (C++/Java/Python)

水果君の日常 3750

5. 最长回文子串_Longest Palindromic Substring

Longest Palindromic Substring Given a string s, find the longest palindromic substring in s. You may assume that the maximum length of s is 1000. 给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。 题目来源:力扣(L...

phil.L's blog 152

leetcode5. Longest Palindromic Substring最长回文子串多种解法-待补充

原题链接 题目的意思不过多的赘述,这里先给出三种解法:暴力解,马拉车,一种巧解 暴力解 写一个判断回文的函数,两重循环判断最长子串(这种方法在字符串过长时可能会栈溢出) class Solution: def longestPalindrome(self, s: 'str') -&amp;amp;gt; 'str': if len(s) &amp;amp;lt; 2: return...

weixin_42156928的博客 207

【leetcode】-5. Longest Palindromic Substring求最长回文子串

Longest Palindromic Substring题目动态规划python代码 题目 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:

。 331

LeetCode 刷题记录 5. Longest Palindromic Substring

题目: 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. Exam...

dldldl1994的博客 328
上一篇: 【Leetcode-python】4.Median of Two Sorted Arrays(两个排序数组的中位数)
下一篇: 【Leetcode-python】6.ZigZag Conversion(z字型变换)
vita2dolce
博客等级 码龄10年 4粉丝 13原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值