代码随想录算法训练营第五十五 | ● 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()];
    }
};

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

相关推荐
j7~1 小时前
【C++11】C++11 新特性全套详解(列表初始化、右值引用、lambda 表达式、function 与 bind 包装器等)
c++·右值引用·lambda表达式·可变参数模板·移动语义·包装器·c++11发展史
wdfk_prog1 小时前
canopennode-rtt推荐,不只可以做从站,也可以承担主站角色
c语言·开发语言·数据库·学习·算法·深度优先
无小道1 小时前
C/C++——可变参数
c语言·开发语言·c++·可变参数
BioRunYiXue2 小时前
科研干货 | IC50全面解读:概念解析、实验设计与数据分析要点
java·开发语言·javascript·人工智能·算法·数据挖掘·数据分析
hahaha60162 小时前
HLS高层次综合设计技巧--UART_TX接收模块设计案例
人工智能·算法·计算机视觉
302wanger2 小时前
一个程序员看完《逆行人生》:电影没说透的,比电影更扎心
算法
hele_two2 小时前
C++模拟蚁群(二)
c++·算法·数学建模·图形渲染
WK100%2 小时前
LeetCode双题:滑动窗口破解最小子数组
c++·经验分享·笔记·算法
sheeta19982 小时前
LeetCode 每日一题笔记 日期:2026.09.02 题目:3875.构造奇偶一致的数组 I
笔记·算法·leetcode
明月_清风2 小时前
递归算法:从原理到实战,一次讲透
后端·算法·go