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

代码随想录训练营第46天|回文子序列

647. 回文子串

class Solution {
public:int count=0;void check(string& s, int left, int right){while(left>=0&&right<s.length()&&s[left]==s[right]){count++;left--;right++;}}int countSubstrings(string s) {for(int i=0; i<s.length(); i++){check(s,i,i);check(s,i,i+1);}return count;}
};

贪心解法,由中心向两边扩散,直至不相等,得到最大回文串。

遍历所有可能的中心,累计扩散过程所有的子串。

516. 最长回文子序列

class Solution {
public:int longestCommonSubsequence(string text1, string text2) {text1.insert(text1.begin(),' ');text2.insert(text2.begin(),' ');int n1=text1.length(), n2=text2.length(), max_len=0;vector<vector<int>> dp(n1,vector<int>(n2,0));for(int i=1; i<n1; i++){for(int j=1; j<n2; j++){if(text1[i]==text2[j])dp[i][j]=dp[i-1][j-1]+1;elsedp[i][j]=max(dp[i-1][j],dp[i][j-1]);max_len=max(max_len,dp[i][j]);}}return max_len;}int longestPalindromeSubseq(string s) {string r(s.rbegin(), s.rend());return longestCommonSubsequence(s,r);}
};

利用最长子序列解决回文子序列问题。

http://www.lryc.cn/news/448567.html

相关文章:

  • 使用 PowerShell 命令更改 RDP 远程桌面端口(无需修改防火墙设置)
  • bilibili实现批量发送弹幕功能
  • 如何查看上网记录及上网时间?5种按步操作的方法分享!【小白也能学会!】
  • Nisshinbo日清纺pvs1114太阳模拟器手测
  • 多线程复杂系统调试利器——assert()
  • 【2024.9.28练习】青蛙的约会
  • Python入门:类的异步资源管理与回收( __del__ 方法中如何调用异步函数)
  • Android开发中的ViewModel
  • Vue 3 文件编译流程详解与 Babel 的使用
  • Android常用C++特性之std::chrono
  • [Oracle] ORA-04036: 实例使用的 PGA 内存超出 PGA_AGGREGATE_LIMIT
  • 一次 Spring 扫描 @Component 注解修饰的类坑
  • 深度学习:调整学习率
  • Java项目实战II基于Java+Spring Boot+MySQL的厨艺交流平台设计与实现(源码+数据库+文档)
  • 第二十节:学习Redis缓存数据库实现增删改查(自学Spring boot 3.x的第五天)
  • Android SQLite的基本使用、生成Excel文件保存到本地
  • 记一次因视频编码无法在浏览器播放、编码视频报错问题
  • 【深度学习】深度卷积神经网络(AlexNet)
  • C语言扫盲
  • 视频融合共享平台LntonAIServer视频智能分析抖动检测算法和过亮过暗检测算法
  • 【笔记篇】Davinci Configurator OS模块(上)
  • 19.3 打镜像部署到k8s中,prometheus配置采集并在grafana看图
  • 如何让系统u盘重新可用
  • 14.安卓逆向-frida基础-编写hook脚本2
  • 车辆零部件检测和分割数据集-车体数据集-yolo格式-yolov5-yolov10可用
  • 甄选范文“论分布式存储系统架构设计”,软考高级论文,系统架构设计师论文
  • 第十四章:html和css做一个心在跳动,为你而动的表白动画
  • poetry安装
  • Proteus如何添加数码管
  • 5 apache poi实现excel的动态下拉框功能