力扣1143. 最长公共子序列(dp)
给定两个字符串 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 。
提示:
1 <= text1.length, text2.length <= 1000text1和text2仅由小写英文字符组成。
1 class Solution {
2 public:
3 int dp[1005][1005]; //dp[i][j]表示text1[0~i]串与text2[0~j]串之间的最大公共子序列
4 int longestCommonSubsequence(string text1, string text2) {
5 memset(dp,0,sizeof(dp));
6 for (int i=1;i<=text1.size();++i) //为保证dp[i-1]时不越界,下标从1开始存取
7 for(int j=1;j<=text2.size();++j){
8 if (text1[i-1]==text2[j-1])
9 dp[i][j]=dp[i-1][j-1]+1;
10 else
11 dp[i][j]=max(dp[i-1][j],dp[i][j-1]);
12 }
13 return dp[text1.size()][text2.size()];
14 }
15 };
力扣1143. 最长公共子序列(dp)的更多相关文章
- 1. 线性DP 1143. 最长公共子序列
最经典双串: 1143. 最长公共子序列 (LCS) https://leetcode-cn.com/problems/longest-common-subsequence/submissions/ ...
- [LeetCode每日一题]1143. 最长公共子序列
[LeetCode每日一题]1143. 最长公共子序列 问题 给定两个字符串 text1 和 text2,返回这两个字符串的最长 公共子序列 的长度.如果不存在 公共子序列 ,返回 0 . 一个字符串 ...
- LCS最长公共子序列~dp学习~4
题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=1513 Palindrome Time Limit: 4000/2000 MS (Java/Others ...
- POJ 1458 最长公共子序列(dp)
POJ 1458 最长公共子序列 题目大意:给出两个字符串,求出这样的一 个最长的公共子序列的长度:子序列 中的每个字符都能在两个原串中找到, 而且每个字符的先后顺序和原串中的 先后顺序一致. Sam ...
- 【BZOJ2423】[HAOI2010]最长公共子序列 DP
[BZOJ2423][HAOI2010]最长公共子序列 Description 字符序列的子序列是指从给定字符序列中随意地(不一定连续)去掉若干个字符(可能一个也不去掉)后所形成的字符序列.令给定的字 ...
- hdu 1159 Common Subsequence(最长公共子序列 DP)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1159 Common Subsequence Time Limit: 2000/1000 MS (Jav ...
- 最长公共子序列 DP
class Solution: def LCS(self,A,B): if not A or not B: #边界处理 return 0 dp = [[0 for _ in range(len(B)+ ...
- LeetCode 1143 最长公共子序列
链接:https://leetcode-cn.com/problems/longest-common-subsequence 给定两个字符串 text1 和 text2,返回这两个字符串的最长公共子序 ...
- 38-最长公共子序列(dp)
最长公共子序列 https://www.nowcoder.com/practice/c996bbb77dd447d681ec6907ccfb488a?tpId=49&&tqId=293 ...
- bzoj3304[Shoi2005]带限制的最长公共子序列 DP
题意:给出三个序列,求出前两个的公共子序列,且包含第三个序列,要求长度最长. 这道题目怎么做呢,f[i][j]表示a串1-i,b串1-j的最长,g[i][j]表示a串i-n,b串j-m最长, 那么只需 ...
随机推荐
- JZOJ 5343. 【NOIP2017模拟9.3A组】健美猫
题面 其中 \(1 \leq n \leq 2 \times 10^6\) 分析 考虑每次移动,发现负数对答案贡献少 \(1\),非负数多 \(1\) 每次移动都加了 \(1\) 负数变非负数关键点在 ...
- Java第三讲动手动脑
1 以上代码无法通过编译主要是由于在Foo类中自定义了有参的构造函数,系统不在提供默认的构造函数(无参),而在上述的引用中并没有提供参数导致无法通过编译. 2. 运行结果 由运行结果分析可知,在运行时 ...
- 带你认识3个J.U.C组件扩展
摘要:本文主要为大家讲解3种J.U.C组件扩展. 本文分享自华为云社区<[高并发]J.U.C组件扩展>,作者: 冰 河. 1.FutureTask FutureTask是J.U.C(jav ...
- 数据库多表连接查询中使用group by分组语句,Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'XXX' which is not functionally dependent on columns in GROUP BY claus
需求描述: 要是用两表联合查询,并对查询的结果进行分组:sql如下: 1 SELECT 2 a.`id`, 3 a.`fr_num`, 4 b.`ent_status` 5 FROM 6 `table ...
- LINUX 简单命令学习总结
命令知识点大纲: 一.默认目录的简单介绍 1)/root/用户名:如/root/test1,该目录为普通用户的家目录,所有用户创建后都能在该目录下找到自己对应的目录信息 /etc:该目录为配置文件存放 ...
- SAP GGB1替换 发现没有替换的字段 解决
需求 替代凭证中的付款方式为默认值 GGB1替代 如上图所示 并没有我们想到替换的zschl字段 这就需要我们去维护一张配置表 将这个字段放出来 sm30--VWTYGB01 将对应字段的勾去掉即可, ...
- LinuxK8S集群搭建三(部署dashboard)
系统环境: CentOS 7 64位 准备工作: 通过虚拟机创建三台CentOS服务器,可参照之前的文章192.168.28.128 --master192.168.28.130 --node0119 ...
- allure+testng遇到的一些问题
java+testng+allure 听说allure报告,"很好看",决定引入. 首先看allure官网,需要在pom.xml中引入包 文档:https://docs.qamet ...
- Linux系统下修改KVM虚拟机配置
一. 安装虚拟机 1. 设备重启进入BIOS,打开SMMU.F10保存退出 2. 进入系统后安装线管组件 virt-install qemu-kvm qemu-img virt-manager lib ...
- 题解[LuoguP5591]小猪佩奇学数学
题解[LuoguP5591]小猪佩奇学数学 前置知识 基本数论推式子能力,如分配律结合律等 等比数列求和 \(\sum_{i=a}^bx^i=\dfrac{x^{b+1}-x^a}{x-1}\) 二项 ...