#include <stdio.h>
#include <string.h>
#include <algorithm>
const int N = 1001;
char a[N],b[N];
int r[N][N];
int main()
{
int i,j;
while(scanf("%s %s",a + 1,b + 1) == 2)
{
int lena = strlen(a + 1),
lenb = strlen(b + 1);
for(i = 0; i <= lena; ++i)
r[i][0] = 0;
for(i = 0; i <= lenb; ++i)
r[0][i] = 0;
for(i = 1; i <= lena; ++i)
for(j = 1; j <= lenb; ++j)
if(a[i] == b[j])
r[i][j] = r[i-1][j-1] + 1;
else
r[i][j] = std::max(r[i-1][j],r[i][j-1]);
printf("%d\n",r[lena][lenb]);
}
return 0;
}
hdu 1159 Common Subsequence #DP
最新推荐文章于 2021-05-25 11:51:06 发布