#include <stdio.h>
#include <string.h>
#include <algorithm>
#pragma warning (disable :4996)
using namespace std;
const int Max = 1000;
int dp[Max][Max];
char str1[Max], str2[Max];
int LCS(int lenstr1, int lenstr2)
{
memset(dp, 0, sizeof(dp));
for (int i = 1; i <= lenstr1; i++)
{
for (int j = 1; j <= lenstr2; j++)
{
if (str1[i - 1] == str2[j - 1])
dp[i][j] = dp[i - 1][j - 1] + 1;
else
dp[i][j] = max(dp[i - 1][j], dp[i][j - 1]);
}
}
return dp[lenstr1][lenstr2];
}
int main()
{
while (~scanf("%s %s", str1, str2))
{
int m = strlen(str1);
int n = strlen(str2);
printf("%d\n", LCS(m, n));
}
return 0;
}
poj 1458 LCS
最新推荐文章于 2021-11-02 10:53:20 发布