参考:https://blog.csdn.net/someone_and_anyone/article/details/81044153
#include<bits/stdc++.h>
using namespace std;
int main()
{
char a[505],b[505];
while(gets(a)!=NULL)
{
gets(b);
int i,j;
int c[505][505];
int len1=strlen(a);
int len2=strlen(b);
for(i=0;i<=len1;i++)
{
c[i][0]=0;
}
for(j=0;j<=len2;j++)
{
c[0][j]=0;
}
for(i=1;i<=len1;i++)
{
for(j=1;j<=len2;j++)
{
if(a[i-1]==b[j-1])
{
c[i][j]=c[i-1][j-1]+1;
}
else
{
c[i][j]=max(c[i-1][j],c[i][j-1]);
}
}
}
printf("%d\n",c[len1][len2]);
}
return 0;
}