using namespace std;
const int kMaxN = 501;
char kStrA[kMaxN];
char kStrB[kMaxN];
int kDp[kMaxN][kMaxN];
int ()
{
while(cin>>kStrA>>kStrB){
int len1 = strlen(kStrA);
int len2 = strlen(kStrB);
memset(kDp, 0, sizeof(kDp));
for(int i = 0; i < len1; ++i){
for(int j = 0; j < len2; ++j){
if(kStrA[i] == kStrB[j]){
kDp[i+1][j+1] = kDp[i][j] + 1;
}else{
kDp[i+1][j+1] = max(kDp[i+1][j], kDp[i][j+1]);
}
}
}
cout<<kDp[len1][len2]<<endl;
}
return 0;
}
近期评论