#include <stdio.h>
#include <string.h>
int main()
{
char a[10000],b[10000];
while (scanf("%s",a)!=EOF)
{
scanf("%s",b);
int c[2][10000]={{0}};
int i,j;
int length1=strlen(a);
int length2=strlen(b);
for (i=1;i<=length1;i++)
for (j=1;j<=length2;j++)
{
if (a[i-1]==b[j-1])
c[i%2][j]=c[(i+1)%2][j-1]+1;
else
{
if (c[(i+1)%2][j]>c[i%2][j-1])
c[i%2][j]=c[(i+1)%2][j];
else
c[i%2][j]=c[i%2][j-1];
}
}
printf("%d\n",c[length1%2][length2]);
}
return 0;
}
参考资料:http://blog.csdn.net/yysdsyl/article/details/4226630