算法训练营第56天|LeetCode 583.两个字符串的删除操作 72.编辑距离
LeetCode 583.两个字符串的删除操作
题目链接:
LeetCode 583.两个字符串的删除操作
代码:
class Solution {
public:int minDistance(string word1, string word2) {int size_1 = word1.size();int size_2 = word2.size();vector<vector<int>>dp(size_1+1,vector<int>(size_2+1,0));for (int i = 0; i <= word1.size(); i++) dp[i][0] = i;for (int j = 0; j <= word2.size(); j++) dp[0][j] = j;for(int i=1;i<=size_1;i++){for(int j=1;j<=size_2;j++){if(word1[i-1]==word2[j-1]){dp[i][j]=dp[i-1][j-1];}else{dp[i][j]=min(dp[i][j-1]+1,dp[i-1][j]+1);}}}return dp[size_1][size_2];}
};
LeetCode 72.编辑距离
题目链接:
LeetCode 72.编辑距离
代码:
class Solution {
public:int minDistance(string word1, string word2) {int size_1 = word1.size();int size_2 = word2.size();vector<vector<int>>dp(size_1+1,vector<int>(size_2+1));for(int i=0;i<=size_1;i++) dp[i][0] = i;for(int j=0;j<=size_2;j++) dp[0][j] = j;for(int i=1;i<=size_1;i++){for(int j=1;j<=size_2;j++){if(word1[i-1]==word2[j-1]) dp[i][j]=dp[i-1][j-1];else dp[i][j] = min(min(dp[i][j-1]+1,dp[i-1][j]+1),dp[i-1][j-1]+1);}}return dp[size_1][size_2];}
};