#include <cstdio>
#include <cstring> using namespace std;
const int N = ;
#define max(a,b) a>b?a:b char a[N] , b[N];
int dp[N][N]; int main()
{
while(scanf("%s%s" , a+ , b+) != EOF){
int l1 = strlen(a+);
int l2 = strlen(b+);
for(int i = ; i<=l1 ; i++)
for(int j = ; j<=l2 ; j++){
if(a[i] == b[j]) dp[i][j] = dp[i-][j-]+;
else dp[i][j] = max(dp[i-][j] , dp[i][j-]);
}
printf("%d\n" , dp[l1][l2]);
}
return ;
}
相关文章
- 最长公共子序列 LCS
- 《灵珠觉醒:从零到算法金仙的C++修炼》卷三·天劫试炼(37)诛仙四剑破子串 - 最长公共子序列(LCS)
- HDU 1159 Common Subsequence 公共子序列 DP 水题重温
- POJ 1159 Palindrome-最长公共子序列问题+滚动数组(dp数组的重复利用)(结合奇偶性)
- hdu1243(最长公共子序列变形)
- 51Nod 1092 回文字符串 | 最长公共子序列变形
- 05_最长公共子序列问题(LCS)
- (最长不降子序列)最少拦截系统 -- hdu -- 1257
- Day47 | 动态规划 :线性DP 最长公共子序列&&最长公共子数组
- 【bzoj2423】最长公共子序列[HAOI2010](dp)