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

1143 最长公共子序列

题目

给定两个字符串 text1 和 text2,返回这两个字符串的最长 公共子序列 的长度。如果不存在 公共子序列 ,返回 0 。
一个字符串的 子序列 是指这样一个新的字符串:它是由原字符串在不改变字符的相对顺序的情况下删除某些字符(也可以不删除任何字符)后组成的新字符串。
例如,“ace” 是 “abcde” 的子序列,但 “aec” 不是 “abcde” 的子序列。
两个字符串的 公共子序列 是这两个字符串所共同拥有的子序列。
示例 1:
输入:text1 = “abcde”, text2 = “ace”
输出:3
解释:最长公共子序列是 “ace” ,它的长度为 3 。
示例 2:
输入:text1 = “abc”, text2 = “abc”
输出:3
解释:最长公共子序列是 “abc” ,它的长度为 3 。
示例 3:
输入:text1 = “abc”, text2 = “def”
输出:0
解释:两个字符串没有公共子序列,返回 0 。

思路

对于要找出最大最小,且需要对比两个字符串的时候,可以尝试从结果倒推,如果发现可以将问题分解为同样的子问题时,尝试使用dp,找出条件,画出dp表。

这题要找出最长公共子序列,尝试从后往前倒推,发现可以分为两种情况:

  • text1和text2的字符相同
  • text1和text2的字符不同
    对于不同的情况,发现可以找到它的前一个状态,依旧有两种情况,因此使用dp。
    接下来使用二维dp,画出状态表,令word1为横轴,word2为纵轴,最左上角为两个字符串为空。第一行和第一列的边界条件均为0,因为没有相同的字符。那么对于其他的dp[j][i]:
  • 如果text1和text2的字符相同,那么dp等于左上方的状态+1
  • 如果不同,那么分为两种情况:
  1. 求word1[i-1]和word2[j]的最长公共子序列,即从左边的状态转移过来
  2. 求word1[i]和word2[j-1]的最长公共子序列,即从上方的状态转移过来
    这两种情况种取较大一方的状态更新dp表
“”word1
“”000000
w0
o0
r0dp[j][i]
d0
20res

最终的结果即状态表最右下的值

代码

class Solution{public: int longestCommonSubsequence(string text1, string text2){intres=0;intcnt2=0;for(inti=0;i<text1.size();i++){for(intj=cnt2;j<text2.size();j++){if(text1[i]==text2[j]){res++;cnt2=j+1;break;}}}returnres;}};

这道题目跟编辑距离很像,都是二维dp,现在知道思路以后就可以立马编写出来代码了

感谢 华南溜达虎 力扣 blind75

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

相关文章:

  • Linux系统部署:Certbot 实现 Nginx 自动续期部署 Let‘s Encrypt 免费 SSL 证书
  • CMake二、带文件多文件编译
  • 冷酷的兔先生是谁,以及我为什么只研究兔子降温
  • 2026年重庆挑选家具哪家性价比高?源点宜联购给出答案 - mypinpai
  • Maven多模块开发实战:从单体到微服务架构的优雅构建之路
  • AI聊天机器人安全漏洞:暴力诱导与风险警示
  • AI时代:被算法重塑的时间感知
  • COMSOL煤矿模型仿真合集:‘瓦斯抽采与热流固耦合、采空区耦合性分析、倾斜煤层下的采空区参数...
  • 力扣面试经典150 88. 合并两个有序数组 归并排序的merge函数
  • 众合食品包装多样化程度怎样,环保性能好不好值得推荐吗? - 工业品网
  • 2026年推荐凯鑫防火,山东地区便宜又靠谱的防火板施工之选 - 工业推荐榜
  • all-in-rag零散的笔记(自存/持续更新)
  • IntelliJ IDEA Maven 按钮区别详解:Reload vs Sync
  • 盘点2026年浙江值得选购的轻钢龙骨防火板吊顶,推荐优质施工服务 - 工业设备
  • 盒马鲜生购物卡回收攻略 - 团团收购物卡回收
  • 2026年 油冷机/水冷机厂家推荐排行榜:高效温控与稳定运行,工业冷却设备实力品牌深度解析 - 品牌企业推荐师(官方)
  • 洗地机刷盘电机精准选型指南
  • 2026年防火堵料加工厂价格大揭秘,昊优环保性价比高 - 工业品牌热点
  • 全网最全:万里通积分卡线上回收方法与渠道对比分析5大注意事项 - 团团收购物卡回收
  • 淄博靠谱的别墅加装电梯定制厂家选购要点有哪些? - myqiye
  • AI智能课堂系统源码:AI课程生成与在线教学管理解决方案
  • 参数调优
  • 揭秘京东e卡变现秘诀,这些回收渠道你知道吗? - 团团收购物卡回收
  • 讲讲新疆隧道防火涂料服务商哪个靠谱,价格怎样 - myqiye
  • 替代国外品牌,国内有稳定的变压器厂家吗?
  • 【MySQL】事务:如何使用事务
  • 马斯克点赞,Karpathy 转发!Kimi 一刀拆了 Transformer 十年地基
  • 2026年 硅胶带厂家推荐排行榜,蠕动泵/导电/医用级/食品级/双色/新能源/工业级/阻燃/弹簧/耐高温硅胶带,专业定制与高适配性深度解析 - 品牌企业推荐师(官方)
  • “数字员工”重构企业生产单元
  • Nginx与frp结合实现局域网和公网的双重https服务