给出两个字符串,求出这样的一个最长的公共子序列的长度:子序列中的每个字符都能在两个原串中找到,而且每个字符的先后顺序和原串中的先后顺序一致。
Sample Input:
abcfbc abfcab
programming contest
abcd mnp
Sample Output:
4
2
0
#include<iostream> #include<algorithm> using namespace std; ]; ]; ][]; int main(void) { while (cin >> s1 >> s2) { int length1 = strlen(s1); int length2 = strlen(s2); int i, j; ; i <= length1 ; ++i) maxlen[i][] = ; ; i <= length2 ; ++i) maxlen[][i] = ; ; i <= length1 ; ++i) { ; j <= length2 ; ++j) { ] == s2[j - ]) { maxlen[i][j] = maxlen[i - ][j - ] + ; } else { maxlen[i][j] = max(maxlen[i - ][j], maxlen[i][j - ]); } } } cout << maxlen[length1][length2]<<endl; } ; }