Leedcode每日打卡 4.12

简介: Leedcode每日打卡 4.12

最长回文子串 - 力扣(LeetCode) (leetcode-cn.com)

给你一个字符串 s,找到 s 中最长的回文子串。


示例 1:


输入:s = "babad"

输出:"bab"

解释:"aba" 同样是符合题意的答案。

示例 2:


输入:s = "cbbd"

输出:"bb"


提示:


1 <= s.length <= 1000

s 仅由数字和英文字母组成


来源:力扣(LeetCode)


动态规划


思路:定义dp[i][j]为以字符串第i个字符开头到第j个字符结尾的字符串是否为回文串


(i<=j)


子串s[l,r],如果s[l+1:r-1]是回文串,那么只需要看s[l]和s[r]是否相等


即dp[l][r]=dp[l+1][r-1] and s[l]==s[r]


特殊情况,如果l+1与r-1相等,说明两个端点中间只有一个元素,


dp[l][r]=True if s[l]==s[r] else False,实际上也可以并入上面那一种情况,因为一个元素自成回文串


如果l+1>r-1,说明两个端点之间没有元素了,那么只需要直接判断s[i]和s[r]是否相等.


在上面的解释过程中,我们都是强调两个端点,但因为i<=j,当i=j时候两点重合,直接赋值即可


总结:定义方程含义,找出状态转移方程,根据状态转移方程确定边界条件。

class Solution:
    def longestPalindrome(self, s: str) -> str:
        n=len(s)
        dp=[[False]*n for i in range(n)]
        dp[n-1][n-1]=True
        a,b,ans=0,0,0
        for l in range(n-2,-1,-1):
            for r in range(l,n):
                if l==r:
                    dp[l][r]=True
                elif l+1>r-1:
                    dp[l][r]=True if s[l]==s[r] else False
                else:
                    dp[l][r]=dp[l+1][r-1] and s[r]==s[l]
                if dp[l][r] and r-l>=ans:
                    a,b,ans=l,r,abs(l-r)
        return s[a:b+1]



image.png

目录
相关文章
|
9月前
|
SQL 数据库
一个很实用的造数工具—Spawner Data Generator
一个很实用的造数工具—Spawner Data Generator
269 0
|
9月前
|
C++
Sublime Text 3 解决中文乱码问题
【5月更文挑战第1天】本篇介绍 Sublime Text 3 解决中文乱码问题,不仅仅适用于 C/C++ 代码,也适用于其他任何 Sublime Text 3 集成的开发环境。
1427 5
Sublime Text 3 解决中文乱码问题
|
9月前
|
弹性计算 固态存储 Linux
2024年阿里云服务器租用详细价格表(CPU/内存/带宽/系统盘)
2024阿里云服务器租用优惠价格表,轻量服务器2核2G3M带宽轻量服务器一年61元,2核4G4M带宽轻量服务器一年165元12个月,ECS云服务器e系列2核2G配置、3M固定带宽、40G ESSD Entry云盘,99元一年、2核4G服务器30元3个月、2核4G配置365元一年、2核8G配置522元一年,云服务器u1、云服务器c7、g7和r7优惠价格表,CPU内存带宽系统盘配置详细报价:
3523 3
|
弹性计算 监控 负载均衡
飞天计划
飞天计划使用
152 0
|
Java 开发工具
Java JDK 最新版本安装与环境配置
java 更新速度越来越快,版本迭代也是越来越多,以前的教程中的页面和流程亦有变化,故更新一下。本文使用日前最新版本 Java SE 15为模版。
472 0
Java JDK 最新版本安装与环境配置
解决办法:undefined reference to symbol 'pthread_mutexattr_settype@@GLIBC_2.2.5'
解决办法:undefined reference to symbol 'pthread_mutexattr_settype@@GLIBC_2.2.5'
622 0
|
SQL 关系型数据库
|
XML 搜索推荐 定位技术
如何让网站被百度快速收录?如何查询百度收录情况?
不管是做网站做排名优化,大多数人都会关注这个收录问题,因为这个道理大家都懂,网站只有再有收录的基础上才会获得排名,所以可以说收录是网站获取排名的基础,收录的多少也就决定了,获取排名的几率的大小。
2522 0
|
SQL 关系型数据库 MySQL