最长回文子串--DP解法

本文介绍了一种使用动态规划解决LeetCode中寻找最长回文子串问题的方法。通过分析回文串的递推关系,定义状态并找出状态转移方程,最终实现算法。文章强调理解状态表示的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题意

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

数据

示例 1:

输入:s = "babad"
输出:"bab"
解释:"aba" 同样是符合题意的答案。

示例 2:

输入:s = "cbbd"
输出:"bb"

示例 3:

输入:s = "a"
输出:"a"

思路--动态规划

这个题有三种做法,我目前只写关于DP 的题解

1.优化的暴力、2.动态规划、马拉车算法

2.回文串具有天然的递推关系----删掉前后端的字符,仍然是回文串,如 abaaba -->  baab

3.接下来就是动态的常规操作,定义状态,找状态转移方程,初始化,实现状态方程,最重要的是两点,定义状态和找状态转移方程式

总结

今天的笔有点问题

一定要搞清楚状态表示

 

代码

class Solu
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

StarCony

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值