// UVa 10405 - Longest Common Subsequence
#include <iostream>
#include <string>
using namespace std;
int main() {
string a, b;
while (getline(cin, a)) {
getline(cin, b);
int lcs[1001][1001];
lcs[0][0] = a[0] == b[0] ? 1 : 0;
for (int i = 1; i < a.length(); i++) {
if (a[i] == b[0])
lcs[i][0] = 1;
else
lcs[i][0] = lcs[i - 1][0];
}
for (int j = 1; j < b.length(); j++) {
if (a[0] == b[j])
lcs[0][j] = 1;
else
lcs[0][j] = lcs[0][j - 1];
}
for (int i = 1; i < a.length(); i++) {
for (int j = 1; j < b.length(); j++) {
if (a[i] == b[j])
lcs[i][j] = lcs[i - 1][j - 1] + 1;
else
lcs[i][j] = max(lcs[i - 1][j], lcs[i][j - 1]);
}
}
cout << lcs[a.length() - 1][b.length() - 1] << endl;
}
return 0;
}
Monday, July 27, 2015
UVa 10405 - Longest Common Subsequence
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment