一个经典问题 (LCS)
来源:互联网 发布:淘宝买韩国专辑靠谱吗 编辑:程序博客网 时间:2024/06/06 20:21
一个经典问题
Problem Description
有两个字符串,比如:abedc与acbde,它们公共的序列有许多种,这个序列在原串中可以是不连续的,比如ab,ad,abe,e等都可算做他们的公共序列,但是最长的序列为abe,长度为3,那么怎么求出这个序列最长是多少呢?
Input
第一行是一个整数T,代表多少组数据(T<=15)
每组数据给出两个字符串(由小写字符组成),长度都小于5000
Output
按题意输出一个整数
Sample Input
2
abcde
edcba
abedc
acbde
Sample Output
1
3
#include<iostream>#include<cstdio>#include<cstring>#include<cmath>#include<algorithm>using namespace std;typedef long long LL;const int MAXN = 5050;int dp[MAXN][MAXN];char s1[MAXN], s2[MAXN];int main(){int T, len1, len2;scanf("%d", &T);while(T--){scanf("%s%s", s1 + 1, s2 + 1);memset(dp, 0, sizeof(dp));len1 = strlen(s1 + 1);len2 = strlen(s2 + 1);for(int i = 1; i <= len1; i++){for(int j = 1; j <= len2; j++){if(s1[i] == s2[j]){dp[i][j] = max(dp[i - 1][j - 1] + 1, dp[i][j]);}else{dp[i][j] = max(dp[i - 1][j], dp[i][j - 1]);}}}printf("%d\n",dp[len1][len2]);}return 0;}
0 0
- 一个经典问题 (LCS)
- 动态规划经典问题---最长公共子序列(LCS)
- LCS 最长公共子序列(DP经典问题)
- 经典的lcs问题(输出公共子序列)
- 经典问题LCS(最大公共子串问题)C代码实现
- 【经典算法】:最长公共子序列(LCS问题,用遍历实现)
- DP经典应用(三)最长公共子序列LCS问题
- orz 逆天的lcs 对经典的lcs问题优化
- 【算法导论学习-29】动态规划经典问题02:最长公共子序列问题(Longest common subsequence,LCS)
- 【算法导论学习-29】动态规划经典问题02:最长公共子序列问题(Longest common subsequence,LCS)
- LCS问题
- lcs问题
- LCS 问题
- LCS问题
- LCS 问题
- LCS问题
- LCS,经典DP(1159)
- 一个经典的问题
- HDU1300
- SqlServer简单优化
- 对 CNN 中 dropout layer 的理解
- listview中复用带有checkbox小记
- iOS CALayer视图图层
- 一个经典问题 (LCS)
- Android Gradle Plugin中 ApplicationVariant文件内的可用属性
- 启动apk的常用方法
- HttpStatus返回状态码
- 遍历Map的4种方法
- 89.UIScrollView的一些不常用属性
- JSON基础以及JSON字符串转换为JSON对象
- Group by与having理解
- Android官方数据绑定框架DataBinding