#include<iostream>
using namespace std;
#include<string>
#include<vector>
int lcs(string s, string t) {
int slen = s.size();
int tlen = s.size();
int i = 0, j = 0;
vector<int> col(slen + 1, 0);
vector<vector<int>>arr(tlen + 1, col);
for (int i = 1; i <=slen; i++) {
for (int j = 1; j <=tlen; j++) {
if (s[i-1] == t[j-1]) {
arr[i][j] = arr[i - 1][j - 1] + 1;
}
else
{
arr[i][j] = (arr[i - 1][j]) > (arr[i][j - 1]) ? arr[i - 1][j] : arr[i][j - 1];
}
}
}
return arr[slen][tlen];
}
int main() {
string s = "ABCDEFG";
string t = "ABCJEFG";
int len = lcs(s, t);
cout << "最长公共子序列长度为:" << len << endl;
return 0;
system("pause");
return 0;
}