#include <iostream>
#include <cstring>
using namespace std;
const int MAX_N = 1000;
char s1[MAX_N], s2[MAX_N];
int MaxLen[MAX_N][MAX_N];
void solve() {
for (i = 1; i <= len1; i++) {
for (j = 1; j <= len2; j++) {
if (s1[i - 1] == s2[ j - 1])
MaxLen[i][j] = MaxLen[i - 1][j - 1] + 1;
else
MaxLen[i][j] = max(MaxLen[i - 1][j], MaxLen[i][j - 1]);
}
}
cout << MaxLen[len1][len2] << endl;
}
}
int main() {
while (cin >> s1 >> s2) {
int len1 = strlen(s1);
int len2 = strlen(s2);
int i, j;
for (i = 1; i <= len1; i++) {
MaxLen[i][0] = 0;
}
for (j = 1; j <= len2; j++) {
MaxLen[0][j] = 0;
}
solve();
return 0;
}
网友评论