poj1458 最长公共子序列长度

最长公共子序列长度

poj.org 1458

状态转移方程:
状态转移方程

最长公共子序列长度C++代码实现:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>

using namespace std;

int LCS(string a, string b)
{
int la, lb;
la = a.length();
lb = b.length();
vector<vector<int>> c(la + 1, vector<int>(lb + 1, 0));

for (int i = 1; i <= la; i++)
for (int j = 1; j <= lb; j++)
{
if (a[i - 1] == b[j - 1])
c[i][j] = c[i - 1][j - 1] + 1;
else
c[i][j] = max(c[i - 1][j], c[i][j - 1]);
}

return c[la][lb];
}

int main()
{
string a, b;
while (cin >> a >> b)
{
cout << LCS(a, b) << endl;
}
return 0;
}

poj1458 最长公共子序列长度
https://xzsk2.github.io/2018/1458/
作者
Sakari
发布于
2018年4月21日
许可协议