算法训练营第56天|LeetCode 583.两个字符串的删除操作 72.编辑距离

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

题目链接:

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

代码:

cpp 复制代码
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.编辑距离

代码:

cpp 复制代码
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];
    }
};
相关推荐
学历真的很重要8 分钟前
PyTorch 零基础入门:从张量到 GPU 加速完全指南
人工智能·pytorch·后端·深度学习·语言模型·职场和发展
树在风中摇曳13 分钟前
【C语言预处理器全解析】宏、条件编译、字符串化、拼接
c语言·算法
CodeWizard~28 分钟前
P7149 [USACO20DEC] Rectangular Pasture S题解
算法
fashion 道格1 小时前
用 C 语言破解汉诺塔难题:递归思想的实战演练
c语言·算法
李玮豪Jimmy1 小时前
Day18:二叉树part8(669.修剪二叉搜索树、108.将有序数组转换为二叉搜索树、538.把二叉搜索树转换为累加树)
java·服务器·算法
xiaoye-duck1 小时前
数据结构之二叉树-链式结构(下)
数据结构·算法
Kt&Rs1 小时前
11.13 LeetCode 题目汇总与解题思路
数据结构·算法
努力学习的小廉1 小时前
我爱学算法之—— 字符串
c++·算法
yuuki2332332 小时前
【数据结构】常见时间复杂度以及空间复杂度
c语言·数据结构·后端·算法
闻缺陷则喜何志丹2 小时前
【分块 差分数组 逆元】3655区间乘法查询后的异或 II|2454
c++·算法·leetcode·分块·差分数组·逆元