#include<stdio.h>
#include<string.h>
#include<iostream>
using namespace std;
int max3(int a,int b,int c){
int d=b>c?b:c;
return a>d?a:d;
}
int max2(int a,int b){
return a>b?a:b;
}
int dp[1001][1001];
int main(){
char a[1001],b[1001];
while(cin>>a>>b){
int lena=strlen(a);
int lenb=strlen(b);
memset(dp,0,sizeof(dp));
int i,j;
if(a[0]==b[0])dp[0][0]=1;
for(i=1;i<lena;i++)
{
// dp[i][0]+=dp[i-1][0];
if(a[i]==b[0])dp[i][0]++;
}
for(i=1;i<lenb;i++)
{
// dp[0][i]+=dp[0][i-1];
if(a[0]==b[i])dp[0][i]++;
}
for(i=1;i<lena;i++)
for(j=1;j<lenb;j++){
//dp[i][j]+=max2(dp[i-1][j],dp[i][j-1]);
if(a[i]==b[j])dp[i][j]=dp[i-1][j-1]+1;
else
dp[i][j]=max2(dp[i][j-1],dp[i-1][j]);
}
cout<<dp[lena-1][lenb-1]<<endl;
}
return 0;
}
版权声明:本文为博主原创文章,未经博主允许不得转载。
today lazy . tomorrow die .
浙公网安备 33010602011771号