#include<stdio.h>
#include<string>
using namespace std;
int max(int a, int b)
{
return a > b ? a : b;
}
int dp[101][101];
char s1[101];
char s2[101];
int main()
{
while (scanf("%s%s", s1, s2) != EOF)
{
int L1 = strlen(s1);
int L2 = strlen(s2);
for (int i = 0; i <= L1; i++)
dp[i][0] = 0;
for (int i = 0; i <= L2; i++)
dp[0][i] = 0;
for (int i = 1; i <= L1; i++)
{
for (int j = 1; j <= L2; j++)
{
if (s1[i-1] == s2[j-1])
dp[i][j] = dp[i - 1][j - 1] + 1;
else
dp[i][j] = max(dp[i - 1][j], dp[i][j - 1]);
}
}
printf("%d\n", dp[L1][L2]);
}
return 0;
}
12-29
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交