【问题描述】
给定一个序列,如果其中有些元素(也可能没有)被省略,则我们可以得到该序列的一个子序列。给定一个序列X = <
> ,另一个序列Z满足条件,存在严格递增索引序列I=<>,使得对于所有j = 1,2,…,k, ,则称Z= <>是的子序列。例如,Z = <a, b, f, c>是X = <a, b, c, f, b, c>的子序列。
给定两个序列X和Y,问题是求出X和Y的最大长度公共子序列的长度。
【输入形式】两个给定字符串
【输出形式】两个序列最大长度公共子序列的长度。
【样例输入】
abcfbc abfcab
【样例输出】
4
#include <iostream>
#include <string.h>
using namespace std;
#ifndef MAX_LENGTH
#define MAX_LENGTH 100000
#endif
int MaxNum(int firstNum, int secondNum)
{
return firstNum > secondNum ? firstNum : secondNum;
}
struct matrix
{
int num;
int direct;
};
typedef matrix Matrix;
int LCS(char *strA, char *strB, int lengthA, int lengthB, Matrix *result