class Solution {
public:
int longestCommonSubsequence(string text1, string text2) {
/*
dp[i][j] : 在text1下标0~i-1中,text2下标0~j-1中选出的公共子序列长度
dp[i][j] =
if text1[i] = text[j]: dp[i - 1][j - 1] + 1
else: max(dp[i][j - 1], dp[i - 1][j])
*/
vector<vector<int>> dp(text1.size() + 1, vector<int>(text2.size() + 1, 0));
for(int i = 1; i <= text1.size(); i ++){
for(int j = 1; j <= text2.size(); j ++){
if(text1[i - 1] == text2[j - 1]){
dp[i][j] = dp[i - 1][j - 1] + 1;
}else {
dp[i][j] = max(dp[i - 1][j], dp[i][j - 1]);
}
}
}
return dp[text1.size()][text2.size()];
}
};
<Talk is cheap, show me the code 24> LeetCode.1143 最长公共子序列
最新推荐文章于 2024-10-08 20:32:22 发布