#include <iostream>
#include <cstdio>
#include <cstring>
#include <climits>
#include <algorithm>
using namespace std;
char a[1000],b[1000];
int dp[1000][1000];
int solve()
{
memset(dp,0,sizeof(dp));
int i,j;
for(i=0;*(a+i)!='\0';++i)
for(j=0;*(b+j)!='\0';++j)
if(*(a+i)==*(b+j))
dp[i+1][j+1]=dp[i][j]+1;
else
dp[i+1][j+1]=max(dp[i][j+1],dp[i+1][j]);
return dp[i][j];
}
int main()
{
while(scanf("%s",a)!=EOF)
{
scanf("%s",b);
printf("%d\n",solve());
}
return 0;
}
poj1458
最新推荐文章于 2020-06-09 20:41:07 发布