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 and text2 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相关推荐

  1. C++longest common subsequence最长公共子序列的实现(附完整源码)

    C++longest common subsequence最长公共子序列 longest common subsequence最长公共子序列的完整源码(定义,实现,main函数测试) longest ...

  2. 【算法导论学习-29】动态规划经典问题02:最长公共子序列问题(Longest common subsequence,LCS)...

    2019独角兽企业重金招聘Python工程师标准>>> 问题描述:序列X={x1,x2,-,xn},Y={y1,y2,-,yn},当Z={z1,z2-,zn}是X的严格递增下标顺序( ...

  3. UVA10405 Longest Common Subsequence【LCS+DP】

    Given two sequences of characters, print the length of the longest common subsequence of both sequen ...

  4. 最长公共子串LCS (Longest Common Subsequence) 算法

    三个方法都有所借鉴,但代码部分是自己试着写出来的,虽然最后的运行结果都是正确的,但此过程中难免会有考虑不周全的地方,如发现代码某些地方有误,欢迎指正.同时有新的想法,也可以提出! 采用顺序结构存储串, ...

  5. LeetCode——1143. 最长公共子序列(Longest Common Subsequence)[中等]——分析及代码(Java)

    LeetCode--1143. 最长公共子序列[Longest Common Subsequence][中等]--分析及代码[Java] 一.题目 二.分析及代码 1. 动态规划 (1)思路 (2)代 ...

  6. 最长公共子序列(LCS)问题 Longest Common Subsequence 与最长公告字串 longest common substr...

    问题描述:字符序列的子序列是指从给定字符序列中随意地(不一定连续)去掉若干个字符(可能一个也不去掉)后所形成的字符序列.令给定的字符序列X="x0,x1,-,xm-1",序列Y=& ...

  7. leetcode1143. Longest Common Subsequence

    题目:题目链接 官方题解 强烈建议官方题解,通俗易懂,别看我的了,真不建议 题目大意:LCS(subsequence):求两个字符串text1,text2的最长公共子序列(注意是序列,不是字串,可以不 ...

  8. UVA 10405 - Longest Common Subsequence

    本题是求最长公共子序列,题目也给了提示,是求最长公共子序列最基本的题. 注意字符串的读取要用gets()而不用scanf()因为字符串里可能有空格. 代码如下: #include<stdio.h ...

  9. leetcode 1143. Longest Common Subsequence | 1143. 最长公共子序列(动态规划,暴力递归->傻缓存->dp)

    题目 https://leetcode.com/problems/longest-common-subsequence/ 题解 经典的 暴力递归 -> 傻缓存 -> dp 题目,以 &qu ...

  10. [Codewar训练]Longest Common Subsequence(Performance version)(最长子序)

    问题: 段位:4 说明: 查找两个字符串之间,按照顺序匹配出最长的一个字符串出来,匹配时候按照各个字符相对位置顺序,不用连续,然后返回匹配出来的字符串,相同长度的返回任意一个就行. 输入案例: // ...

最新文章

  1. arp欺骗攻击——获取内网中用户浏览的图片信息
  2. GFS架构启示 | Google File System
  3. 自相关函数,功率谱,时间序列信号模型三者的关系
  4. ubuntu查看网关
  5. .NET Core玩转爬虫系列之借助正则表达式入门篇
  6. oc引导win方法_[OC更新]机械革命8代、9代标压稳定版更新
  7. domain gap(域间隙)是什么?==>在一个数据集上训练好的模型无法应用在另一个数据集上
  8. vue-promise-axios
  9. # 取字典的值_python3的列表、元组、字典的复习和推导式和生成器小结
  10. react-native ListView 封装 实现 下拉刷新/上拉加载更多
  11. python json转xml_Python中xml和json格式相互转换操作示例
  12. 使用jTopo给Html5 Canva中绘制的元素添加鼠标事件_html5教程技巧
  13. redis 集群扩容方案
  14. 多实例安装mysql数据库
  15. 360强力卸载能不能卸载360?我们从360美国退市说起
  16. 客户成功故事 | 深圳赛意法:数据分析,为企业可持续发展注入源动力
  17. kettle配置资源库
  18. android 涂鸦软件demo,涂鸦demo(swift)这是一款涂鸦软件,能够实现对图片的基本操作...
  19. 基于STM32F103单片机的生理监控心率脉搏监控TFT彩屏显示
  20. 学生管理系统课程设计

热门文章

  1. Day07 Scanner 类、 Random 类、 ArrayList 类 6.20
  2. [HNOI2015]亚瑟王 题解
  3. android 电子签名设备,[Android]实现电子签名并截屏
  4. 光条中心线提取-Steger算法(基于Hessian矩阵)类似于ArcScan提取道路中心线
  5. 业务流程管理(BPM)系统的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  6. ”左行右立“折寿探秘
  7. Win2008 R2 遗忘管理员密码了怎么办?解决方法如下:
  8. 【机器学习】异常检测算法之(KNN)-K Nearest Neighbors
  9. 解决Microsoft Teredo Tunneling Adapter 這個裝置無法啟動。 (代碼 10)
  10. stripe海外支付php教程