网站开发资金规模,设计本体论,哈尔滨网站优化排名,河南南阳最新消息今天583. 两个字符串的删除操作 - 力扣#xff08;LeetCode#xff09; 状态#xff1a;查看思路后AC。 和查找子序列的操作类似#xff0c;但是考虑的是删除操作。代码如下#xff1a;
class Solution {
public:int minDistance(string word1, string word2) {int len1 wor… 583. 两个字符串的删除操作 - 力扣LeetCode 状态查看思路后AC。 和查找子序列的操作类似但是考虑的是删除操作。代码如下
class Solution {
public:int minDistance(string word1, string word2) {int len1 word1.size(), len2 word2.size();vectorvectorint dp(len11, vectorint(len21, 0));for(int i 0; i len1; i) dp[i][0] i;for(int j 0; j len2; j) dp[0][j] j;for(int i 1; i len1; i){for(int j 1; j len2; j){if(word1[i-1] word2[j-1]) dp[i][j] dp[i-1][j-1];else dp[i][j] min(dp[i-1][j]1, dp[i][j-1]1);}}return dp[len1][len2];}
}; 72. 编辑距离 - 力扣LeetCode 状态查看思路后AC。 综合了前面几题在不同的情况下要考虑增、删、改三种情况对于多个数的求min技巧getmin({num1, num2, num3});代码如下
class Solution {
public:int minDistance(string word1, string word2) {int len1 word1.size(), len2 word2.size();vectorvectorint dp(len11, vectorint(len21, 0));for(int i 0; i len1; i) dp[i][0] i;for(int j 0; j len2; j) dp[0][j] j;for(int i 1; i len1; i){for(int j 1; j len2; j){if(word1[i-1] word2[j-1]) dp[i][j] dp[i-1][j-1];else dp[i][j] min({dp[i-1][j], dp[i][j-1], dp[i-1][j-1]})1;}}return dp[len1][len2];}
};