坑点在于输入有空格
#include <iostream>
#include <cstring>
#include <cmath>
#include <queue>
#include <stack>
#include <list>
#include <map>
#include <set>
#include <string>
#include <cstdlib>
#include <cstdio>
#include <algorithm>
using namespace std;
//string a;
//string b;
char a[1010];
char b[1010];
int dp[1010][1010];
int main()
{
while(gets(a) && gets(b))
{
int l1 = strlen(a);
int l2 = strlen(b);
memset(dp,0,sizeof(dp));
for(int i=0;i<l1;i++)
{
for(int j=0;j<l2;j++)
{
if(a[i] == b[j])
{
dp[i + 1][j + 1] = dp[i][j] + 1;
}
else
{
dp[i + 1][j + 1] = max(dp[i + 1][j],dp[i][j + 1]);
}
}
}
printf("%d\n",dp[l1][l2]);
}