当前位置: 首页 > news >正文

040 最长回文子序列 动态规划

516. 最长回文子序列

中等

相关标签

premium lock icon相关企业

给你一个字符串 s ,找出其中最长的回文子序列,并返回该序列的长度。

子序列定义为:不改变剩余字符顺序的情况下,删除某些字符或者不删除任何字符形成的一个序列。

示例 1:

输入:s = "bbbab"
输出:4
解释:一个可能的最长回文子序列为 "bbbb" 。

示例 2:

输入:s = "cbbd"
输出:2
解释:一个可能的最长回文子序列为 "bb" 。

提示:

  • 1 <= s.length <= 1000
  • s 仅由小写英文字母组成

class Solution {
public:int longestPalindromeSubseq(string s) {int len = s.size();vector<vector<int>> dp(len,vector<int>(len,0));for(int i=0;i<len;i++){dp[i][i] = 1; //以i开头,以i结尾为单个字符,是回文,长度为1}for(int i=len-1;i>=0;i--){for(int j=i+1;j<len;j++){if(s[i]==s[j]){dp[i][j] = dp[i+1][j-1]+2;  //这里会用到左下方的数值,代表空字符串的最长回文子序列的长度,so左下方必须初始化为0}else{dp[i][j] = max(dp[i+1][j],dp[i][j-1]);}}}return dp[0][len-1];}
};
  • dp[i] [j] :[i,j] 的最长回文子序列长度为dp[i] [j]
  • 若是s[i] == s[j] , dp[i] [j] = dp[i+1] [j-1] + 2; //两个数相等,由上一阶段长度加2,一下加两个字符(开头的和末尾的),若是不相等,则 dp[i] [j] = max(dp[i] [j-1],dp[i+1] [j]),取两个区间内最长的(不理解可以看下面的图)。
  • 初始化:根基是由中间向两边进行推导,最终遍历右上三角,最中间是i=j的时刻,此时最长回文子序列的长度为1,初始化dp[i] [i] = 1 ,其余地方默认为0即可
  • 遍历顺序:由图2可以看出dp[i] [j] 由左边,下边推导出来 ,so 从下往上遍历,从左往右遍历

1776599016263

1776599113402

http://www.jsqmd.com/news/667632/

相关文章:

  • 别再装第三方跑分了!Windows自带winsat命令,5分钟测完电脑真实性能
  • DanmakuFactory:弹幕转换的瑞士军刀,从零到一完全指南
  • ROS2导航避坑指南:为什么你的TurtleBot3建图后导航总失败?从AMCL初始化到地图路径的常见问题排查
  • 绕过系统限制?聊聊Android AudioRecord采集REMOTE_SUBMIX的那些权限坑与替代方案
  • AGI训练数据跨境合规危机爆发前夜:2026奇点大会最新法律沙盒机制详解(仅限首批200家试点企业)
  • 飞书开放平台避坑指南:获取User ID、群ID的三种方法及常见权限错误排查
  • 重庆GEO优化公司哪家靠谱?2026年最新选型指南 - 新闻快传
  • LabVIEW + Python 搞工业AI?手把手教你搭建一个轴承故障实时诊断系统(附CWRU数据集处理代码)
  • 别再只用ifconfig看网卡了!用rfkill搞定Linux无线网卡硬开关(CentOS 7实测避坑)
  • PyMOL分析氢键的3个隐藏技巧与常见误区:从基础显示到高级渲染(以蛋白-配体为例)
  • 从“炼丹”到“量产”:用Faster R-CNN.pytorch训练自定义模型后,如何部署并批量处理自己的图片?
  • 中国消费者协会测评:不同价位沐浴油横向对比,从 78 到 500 元差距 - 新闻快传
  • League-Toolkit终极指南:英雄联盟玩家的智能助手,一键提升游戏体验 [特殊字符]
  • 【规则引擎】Drools实战:从电商促销到风控决策
  • 如何利用Wireshark进行VoIP网络故障诊断:4个实战技巧提升通话质量
  • 从防御者视角看灰鸽子:手把手教你用Wireshark和Sysinternals工具检测远程控制木马
  • AGI真正跨域迁移的临界点在哪?基于217B参数模型集群的迁移稳定性压测报告(仅开放72小时下载)
  • Mybatis动态SQL避坑指南:为什么你的`where`标签里加了`and`还是会报错?
  • 告别卡顿!H3C无线网络优化实战:从信号覆盖到VLAN隔离的保姆级配置指南
  • Stata实战:双重差分模型(DID)的完整检验流程与可视化呈现
  • 【Allegro 17.4实战指南】PCB叠层规划与阻抗计算核心步骤详解
  • 华为云ManageOne北向对接之核心模型与租户关系(二)
  • 这款“AI陪伴手链”几乎什么都不做——但这恰恰是重点。 - 新闻快传
  • 用Cesium.js实现一个简易地图标注工具:从屏幕点击到三维坐标的完整流程解析
  • 从零到一:CLRNet在Tusimple数据集上的复现、调优与实战可视化
  • AGI安全攻防能力评估体系(MITRE ATLAS+自研AGI-ATTCK v1.2双标认证)
  • 别再全局改maxLimit了!MyBatis-Plus分页性能与安全最佳实践(含自定义扩展教程)
  • 3步解锁电脑玩手机游戏:scrcpy让你的Android设备变身游戏主机
  • 轻松玩转树莓派Pico之五、FreeRTOS多任务实战
  • 生物信息学新手避坑指南:从NCBI下载基因组到BLAST+本地比对,我踩过的那些‘雷’都帮你填平了