代码随想录算法训练营第五十五 | ● 583. 两个字符串的删除操作 ● 72. 编辑距离

583. 两个字符串的删除操作

https://programmercarl.com/0583.两个字符串的删除操作.html

cpp 复制代码
class Solution {
public:
    int minDistance(string word1, string word2) {
        vector<vector<int>> dp(word1.size()+1,vector<int>(word2.size()+1,0));
        //初始化
        for(int i=0;i<=word1.size();i++)
            dp[i][0]=i;
        for(int i=0;i<=word2.size();i++)
            dp[0][i]=i;
        for(int i=1;i<=word1.size();i++) {
            for(int j=1;j<=word2.size();j++) {
                if(word1[i-1]==word2[j-1])
                    dp[i][j] = dp[i-1][j-1];
                    //这里的逻辑一开始考虑错了
                    //dp[i][j] = min(dp[i-1][j]-1,min(dp[i][j-1]-1,dp[i-1][j-1]));
                else
                    dp[i][j] = min(dp[i-1][j]+1,dp[i][j-1]+1);
            }
        }
        return dp[word1.size()][word2.size()];
    }
};

72. 编辑距离

https://programmercarl.com/0072.编辑距离.html

cpp 复制代码
class Solution {
public:
    int minDistance(string word1, string word2) {
        vector<vector<int>> dp(word1.size()+1,vector<int>(word2.size()+1,0));
        for(int i=0;i<=word1.size();i++)
            dp[i][0]=i;
        for(int i=0;i<=word2.size();i++)
            dp[0][i]=i;
        for(int i=1;i<=word1.size();i++) {
            for(int j=1;j<=word2.size();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],dp[i-1][j]})+1;
                    //dp[i][j] = min(dp[i-1][j]+1,dp[i][j-1]+1);
                }
            }
        }
        return dp[word1.size()][word2.size()];
    }
};

这类题目的代码大致思路:

相关推荐
Jasmine_llq15 小时前
《B4261 [GESP202503 三级] 2025》
开发语言·c++·算法·条件判断算法·位运算恒等式推导·简单算术运算
小张成长计划..15 小时前
【C++】32:智能指针
c++
咩咦15 小时前
C++学习笔记19:运算符重载基础与赋值运算符重载
c++·学习笔记·类和对象·运算符重载·赋值运算符·operator
简单点好不好15 小时前
工作中的工程问题: 找圆?
算法
阿Y加油吧16 小时前
两道字符串 DP 模板题复盘:最长公共子序列 & 编辑距离
leetcode
我爱cope16 小时前
【力扣hot100:76. 最小覆盖子串】
算法·leetcode·职场和发展
社交怪人16 小时前
【歌手大奖赛】信息学奥赛一本通C语言解法(题号2072)
c语言·算法
数据科学小丫16 小时前
算法:逻辑回归
算法·机器学习·逻辑回归
爱写代码的小朋友16 小时前
基于多约束遗传算法的中小学排座位优化模型研究
linux·人工智能·算法
один but you16 小时前
unorder_map 和unorder_set
算法·哈希算法·散列表