c_cpp 最长的共同子序列
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c_cpp 最长的共同子序列相关的知识,希望对你有一定的参考价值。
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
const int N = 100;
char A[N], B[N];
int dp[N][N];
int main() {
int n;
cin >> A + 1; // Start from index 1
cin >> B + 1;
int lenA = strlen(A + 1);
int lenB = strlen(B + 1);
// boundary
for (int i = 0; i <= lenA; i++) {
dp[i][0] = 0;
}
for (int j = 0; j <= lenB; j++) {
dp[0][j] = 0;
}
// state transition equation
for (int i = 1; i <= lenA; i++) {
for (int j = 1; j <= lenB; j++) {
if (A[i] == B[j]) {
dp[i][j] = dp[i - 1][j - 1] + 1;
}
else {
dp[i][j] = max(dp[i - 1][j], dp[i][j - 1]);
}
}
}
cout << dp[lenA][lenB] << endl;
return 0;
}
/*
Sample Input:
sadstory
adminsorry
Sample Output:
6
*/
以上是关于c_cpp 最长的共同子序列的主要内容,如果未能解决你的问题,请参考以下文章
c_cpp 最长的子序列
c_cpp 最长的子序列
c_cpp 最长的子序列
c_cpp 最长的子序列
c_cpp 找到两个最长的非重叠回文子序列的长度的乘积
[LeetCode] Longest Uncommon Subsequence I 最长非共同子序列之一