1092. 最短公共超序列

news/2024/9/18 3:08:31/文章来源:https://www.cnblogs.com/pengge666/p/18372403

非常好的一道理解LCS本质的题目

class Solution {
public:string longestCommonSubsequence(const string str1, const string str2) {int m = str1.length();int n = str2.length();// 创建一个二维数组来存储LCS的长度vector<vector<int>> dp(m + 1, vector<int>(n + 1, 0));// 填充dp数组for (int i = 1; i <= m; ++i) {for (int j = 1; j <= n; ++j) {if (str1[i - 1] == str2[j - 1]) {dp[i][j] = dp[i - 1][j - 1] + 1;} else {dp[i][j] = max(dp[i - 1][j], dp[i][j - 1]);}}}// 从dp数组中构建LCSint i = m, j = n;string lcs;while (i > 0 && j > 0) {if (str1[i - 1] == str2[j - 1]) {lcs.push_back(str1[i - 1]);--i;--j;} else if (dp[i - 1][j] > dp[i][j - 1]) {lcs.push_back(str1[i - 1]);--i;} else {lcs.push_back(str2[j- 1]);--j;}}while(j>0){lcs.push_back(str2[j- 1]);--j;}while(i>0){lcs.push_back(str1[i- 1]);--i;}// 由于我们是从后往前构建LCS,所以需要反转字符串reverse(lcs.begin(), lcs.end());return lcs;}string shortestCommonSupersequence(string str1, string str2) {return longestCommonSubsequence(str1,str2);  }
};

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/785039.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【转】管理者,一定要有道-法-术的思维模型

我有一个观点:作为管理者,必须要有“道法术”的思维模型。 具备这样的思维,才能穿透表象,站在更高的维度去解决管理上遇到的问题。 今天,我们一起来聊聊这个话题。 术:学工具、学方法 问题来了,什么是术? 王东岳老师说:术,就是看你能驱动什么。 简单来说,术,就是工…

更漂亮的 7-Zip

搬运更漂亮的 7-Zip(并添加了 Jar 关联) - 『精品软件区』 - 吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn 作为一款强大的开源压缩软件,7-Zip 的 UI 实在是太丑了,依然是上个世纪的风格。这里通过修改源代码并重新编译的方式,更换了它的文件管理器图标和文件…

Summarization with Langchain

教程链接 — https://youtu.be/w6wOhSThnoo 摘要是自然语言处理(NLP)的一个关键方面,它能够将大量文本浓缩成简洁的摘要。LangChain,作为NLP领域中的一个强大工具,提供了三种不同的摘要技术:stuff、map_reduce和refine。每种方法都有其独特的优点和局限性,使它们适用于不…

R绘图(06)——带errorbar的柱状图

每次找R绘图美化都很麻烦,索性自己写个笔记慢慢补充绘图美化的指令### 生成数据 ### # 设置种子以获得可重复的结果 set.seed(222) # 生成字符序列 "AAAABBBB" char_sequence <- c("A", "A", "A", "A", "B", …

WPF:MVVM的由来与属性绑定的过程

WPF:MVVM的由来与属性绑定的过程 1、MVVM (1)MVVM是什么? ​ MVVM(Model-View-ViewModel)是一种软件架构设计模式MVVM模式。有助于分离应用程序的业务逻辑和用户界面层,使得开发过程更易于管理,同时也便于单元测试。Model? 现实世界中对象的抽象结果。 View? View=U…

异或的常用性质

性质 1. 百度百科给的最主要的性质就是归零和结合,其他的就都是拓展了。 例题:P1469 2. \(a \bigoplus b<=a+b\) 关于这个不等式比较好的理解为异或就是不进位的加法 例题:luoguP5514 应用 异或哈希 异或跟hash一样,也是会发生冲突的 例如:$1 \bigoplus 2 = 5 \bigopl…

虚拟机的搭建

1.Download VMware Workstation 下载和安装关注微信公众号“软件安装大神”找到虚拟机VMware16 2.DownloadingKali Linux 搜索官网:Kali Linux | Penetration Testing and Ethical Hacking Linux Distribution 解压,然后在第一步 虚拟机VMware16安装成功后打开第二部解压文…

AcWing 1078. 旅游规划 (DFS找树的直径+直径中点性质求解,无DP)

原题链接 题目描述算法 引用自 树的直径 - OI-Wiki:若树上所有边边权均为正,则树的所有直径中点重合 证明:使用反证法。设两条中点不重合的直径分别为 \(\delta(s,t) 与 \delta(s,t)\),中点分别为 \(x\) 与 \(x\)。显然,\(\delta(s,x) = \delta(x,t) = \delta(s,x) = \del…

世上最好的共享内存(Linux共享内存最透彻的一篇)------宋宝华

共享单车、共享充电宝、共享雨伞,世间的共享有千万种,而我独爱共享内存。 早期的共享内存,着重于强调把同一片内存,map到多个进程的虚拟地址空间(在相应进程找到一个VMA区域),以便于CPU可以在各个进程访问到这片内存。现阶段广泛应用于多媒体、Graphics领域的共享内存方…

P7706 文文的摄影布置 题解

一道不错的线段树题P7706 文文的摄影布置 题解 原题 读完题,发现是线段树。单点修改+区间查询。 不过查询的值有些奇怪,就是了,我们考虑用线段树维护这个 ψ 值(下称待求值)。 对于一个区间的待求值,大概有四种情况:如上图四种情况分别为:待求值最大值在左区间 待求值最大…

信息学奥赛初赛天天练-71-NOIP2016普及组-基础题2-进制转换、二进制转八进制、八进制转二进制、二叉树数组存储、寻址空间

NOIP 2016 普及组 基础题2 4 以下不是 CPU 生产厂商的是( ) A Intel B AMD C Microsoft D IBM 8 与二进制小数 0.1相等的八进制数是( ) A 0.8 B 0.4 C 0.2 D 0.1 9 以下是 32 位机器和 64 位机器的区别是( ) A 显示器不同 B 硬盘大小不同 C 寻…

CF 2001 E2 solution (967 Div.2)

CF 2001 E2 由于对称,所以设 \(heap[u]\) 为两次确定堆,且第一次弹出的是 \(u\),\(heap[u,v]\) 是第一次 \(u\) ,第二次 \(v\) 则答案就是 \(\sum heap[u]=2^{n-1}heap[x]\) 其中 \(x\) 任意。 不妨我们考虑第一次都是从第一个叶子弹出,那么对于其他不同的第二个弹出的点…