/* 最基础的LCS,不解释,直接贴代码
*/
#include <cstdio>
#include <cstring>
#include <algorithm>
#define MAXN 500
using namespace std;
char str1[MAXN], str2[MAXN];
int dp[MAXN][MAXN];
int main(void) {
int len1, len2;
while(scanf("%s%s", str1+1, str2+1) != EOF) {
int len1 = strlen(str1+1);
int len2 = strlen(str2+1);
memset(dp, 0, sizeof(dp));
for(int i=1; i<=len1; ++i) {
for(int j=1; j<=len2; ++j) {
dp[i][j] = max(dp[i-1][j], dp[i][j-1]);
if(str1[i] == str2[j])
dp[i][j] = dp[i-1][j-1]+1;
}
}
printf("%d\n", dp[len1][len2]);
}
return 0;
}
poj 1458 Common Subsequence (DP:LCS)
最新推荐文章于 2019-11-24 23:57:32 发布