Longest Common Subsequence
Description
Given two strings, find the longest common subsequence (LCS).
Your code should return the length of LCS.
Example:
For"ABCD"and"EDCA", the_LCS_is"A"(or"D","C"), return1.
For"ABCD"and"EACB", the_LCS_is"AC", return2.
Discussion
Method
DP 匹配
int longestCommonSubsequence(string A, string B) {
// write your code here
vector<vector<int>> dp(A.size() + 1, vector<int>(B.size() + 1, 0));
for(int a_idx = 1; a_idx <= A.size(); ++a_idx) {
for(int b_idx = 1; b_idx <= B.size(); ++b_idx) {
if(A[a_idx - 1] == B[b_idx - 1]) {
dp[a_idx][b_idx] = dp[a_idx - 1][b_idx - 1] + 1;
}
else {
dp[a_idx][b_idx] = max(dp[a_idx][b_idx - 1], dp[a_idx - 1][b_idx]);
}
}
}
return dp[A.size()][B.size()];
}