Longest Common Subsequence
1、题目描述:
Given two strings text1
and text2
, return the length of their longest common subsequence. If there is no common subsequence, return 0
.
A subsequence of a string is a new string generated from the original string with some characters (can be none) deleted without changing the relative order of the remaining characters.
- For example,
"ace"
is a subsequence of"abcde"
.
A common subsequence of two strings is a subsequence that is common to both strings.
Constraints:
1 <= text1.length, text2.length <= 1000
text1
andtext2
consist of only lowercase English characters.
2、解答:
求最长公共子序列LCS的长度,考虑动态规划。有如下的动态规划策略:
- 如果a[i] == b[j],那么对于LCS(i, j ) = 1 + LCS(i - 1, j - 1);
- 如果a[i] != b[j],那么LCS(i, j) = max(LCS(i, j - 1), LCS(i - 1, j))。
其中LCS(i, j)代表 序列a的前i部分和序列b的前j部分的最长公共子序列的长度。
代码如下:
class Solution {
public:int longestCommonSubsequence(string &a, string& b) {short m[1001][1001];for (auto i = 0; i < a.size(); ++i) for (auto j = 0; j < b.size(); ++j) {m[i+1][j+1] = a[i] == b[j] ? m[i][j] + 1 : max(m[i+1][j], m[i][j+1]);}return m[a.size()][b.size()]; }
};
3、题目链接及相关题目
Loading...
- 1092. Shortest Common Supersequence
- 1062. Longest Repeating Substring
- 516. Longest Palindromic Subsequence
Longest Common Subsequence相关推荐
- C++longest common subsequence最长公共子序列的实现(附完整源码)
C++longest common subsequence最长公共子序列 longest common subsequence最长公共子序列的完整源码(定义,实现,main函数测试) longest ...
- 【算法导论学习-29】动态规划经典问题02:最长公共子序列问题(Longest common subsequence,LCS)...
2019独角兽企业重金招聘Python工程师标准>>> 问题描述:序列X={x1,x2,-,xn},Y={y1,y2,-,yn},当Z={z1,z2-,zn}是X的严格递增下标顺序( ...
- UVA10405 Longest Common Subsequence【LCS+DP】
Given two sequences of characters, print the length of the longest common subsequence of both sequen ...
- 最长公共子串LCS (Longest Common Subsequence) 算法
三个方法都有所借鉴,但代码部分是自己试着写出来的,虽然最后的运行结果都是正确的,但此过程中难免会有考虑不周全的地方,如发现代码某些地方有误,欢迎指正.同时有新的想法,也可以提出! 采用顺序结构存储串, ...
- LeetCode——1143. 最长公共子序列(Longest Common Subsequence)[中等]——分析及代码(Java)
LeetCode--1143. 最长公共子序列[Longest Common Subsequence][中等]--分析及代码[Java] 一.题目 二.分析及代码 1. 动态规划 (1)思路 (2)代 ...
- 最长公共子序列(LCS)问题 Longest Common Subsequence 与最长公告字串 longest common substr...
问题描述:字符序列的子序列是指从给定字符序列中随意地(不一定连续)去掉若干个字符(可能一个也不去掉)后所形成的字符序列.令给定的字符序列X="x0,x1,-,xm-1",序列Y=& ...
- leetcode1143. Longest Common Subsequence
题目:题目链接 官方题解 强烈建议官方题解,通俗易懂,别看我的了,真不建议 题目大意:LCS(subsequence):求两个字符串text1,text2的最长公共子序列(注意是序列,不是字串,可以不 ...
- UVA 10405 - Longest Common Subsequence
本题是求最长公共子序列,题目也给了提示,是求最长公共子序列最基本的题. 注意字符串的读取要用gets()而不用scanf()因为字符串里可能有空格. 代码如下: #include<stdio.h ...
- leetcode 1143. Longest Common Subsequence | 1143. 最长公共子序列(动态规划,暴力递归->傻缓存->dp)
题目 https://leetcode.com/problems/longest-common-subsequence/ 题解 经典的 暴力递归 -> 傻缓存 -> dp 题目,以 &qu ...
- [Codewar训练]Longest Common Subsequence(Performance version)(最长子序)
问题: 段位:4 说明: 查找两个字符串之间,按照顺序匹配出最长的一个字符串出来,匹配时候按照各个字符相对位置顺序,不用连续,然后返回匹配出来的字符串,相同长度的返回任意一个就行. 输入案例: // ...
最新文章
- arp欺骗攻击——获取内网中用户浏览的图片信息
- GFS架构启示 | Google File System
- 自相关函数,功率谱,时间序列信号模型三者的关系
- ubuntu查看网关
- .NET Core玩转爬虫系列之借助正则表达式入门篇
- oc引导win方法_[OC更新]机械革命8代、9代标压稳定版更新
- domain gap(域间隙)是什么?==>在一个数据集上训练好的模型无法应用在另一个数据集上
- vue-promise-axios
- # 取字典的值_python3的列表、元组、字典的复习和推导式和生成器小结
- react-native ListView 封装 实现 下拉刷新/上拉加载更多
- python json转xml_Python中xml和json格式相互转换操作示例
- 使用jTopo给Html5 Canva中绘制的元素添加鼠标事件_html5教程技巧
- redis 集群扩容方案
- 多实例安装mysql数据库
- 360强力卸载能不能卸载360?我们从360美国退市说起
- 客户成功故事 | 深圳赛意法:数据分析,为企业可持续发展注入源动力
- kettle配置资源库
- android 涂鸦软件demo,涂鸦demo(swift)这是一款涂鸦软件,能够实现对图片的基本操作...
- 基于STM32F103单片机的生理监控心率脉搏监控TFT彩屏显示
- 学生管理系统课程设计
热门文章
- Day07 Scanner 类、 Random 类、 ArrayList 类 6.20
- [HNOI2015]亚瑟王 题解
- android 电子签名设备,[Android]实现电子签名并截屏
- 光条中心线提取-Steger算法(基于Hessian矩阵)类似于ArcScan提取道路中心线
- 业务流程管理(BPM)系统的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
- ”左行右立“折寿探秘
- Win2008 R2 遗忘管理员密码了怎么办?解决方法如下:
- 【机器学习】异常检测算法之(KNN)-K Nearest Neighbors
- 解决Microsoft Teredo Tunneling Adapter 這個裝置無法啟動。 (代碼 10)
- stripe海外支付php教程