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

server/2024/9/24 0:57:47/

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

https://programmercarl.com/0583.%E4%B8%A4%E4%B8%AA%E5%AD%97%E7%AC%A6%E4%B8%B2%E7%9A%84%E5%88%A0%E9%99%A4%E6%93%8D%E4%BD%9C.html

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]));elsedp[i][j] = min(dp[i-1][j]+1,dp[i][j-1]+1);}}return dp[word1.size()][word2.size()];}
};

在这里插入图片描述

72. 编辑距离

https://programmercarl.com/0072.%E7%BC%96%E8%BE%91%E8%B7%9D%E7%A6%BB.html

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()];}
};

在这里插入图片描述

这类题目的代码大致思路:
在这里插入图片描述


http://www.ppmy.cn/server/48383.html

相关文章

Qt Graphics View Framework 使用教程

欢迎来到 Qt Graphics View Framework 的世界&#xff01;本教程将引导您了解这一强大工具的基础知识&#xff0c;并教您如何开始使用它来创建丰富的 2D 图形界面。无论您是编程新手还是经验丰富的开发者&#xff0c;本教程都将帮助您快速上手。 基本概念 Qt Graphics View F…

实用小工具-python esmre库实现word查找

python esmre库实现word查找 前言&#xff1a; 在文本中匹配特定的字符串&#xff0c;一般可以用普通的字符串匹配算法&#xff0c;KMP算法&#xff1b; python中提供了一个库&#xff0c;esmre, 通过预先将字符串存到esm对象中&#xff0c;利用这些字符串从候选的字符串中进行…

node.js学习

node.js学习实操及笔记 温故node.js&#xff0c;node.js学习实操过程及笔记~ node.js学习视频node.js官网node.js中文网实操笔记githubcsdn笔记 为什么学node.js 可以让别人访问我们编写的网页为后续的框架学习打下基础&#xff0c;三大框架vue react angular离不开node.js …

车载诊断架构 - 引导诊断

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 屏蔽力是信息过载时代一个人的特殊竞争力,任何消耗你的人和事,多看一眼都是你的不对。非必要不费力证明自己,无利益不试图说服别人,是精神上的节…

[大模型]Llama-3-8B-Instruct FastApi 部署调用

环境准备 在 Autodl 平台中租赁一个 3090 等 24G 显存的显卡机器&#xff0c;如下图所示镜像选择 PyTorch-->2.1.0-->3.10(ubuntu22.04)-->12.1。 接下来打开刚刚租用服务器的 JupyterLab&#xff0c;并且打开其中的终端开始环境配置、模型下载和运行演示。 pip 换源…

DP动态规划(下)

文章目录 如何在动态规划中有效地使用std::unordered_map?以下是使用std::unordered_map进行动态规划的一些关键点&#xff1a;选择合适的键&#xff1a;考虑哈希冲突&#xff1a;优化哈希函数&#xff1a; 下面是一个使用std::unordered_map解决斐波那契数列问题的例子&#…

密码加密存储

实际项目中我们不会把密码明文存储在数据库中 默认使用的PasswordEncoder要求数据库中的密码格式为:{id}password。它会根据id去判断密码的加密方式。但是我们一般不会采用这种方式。所以就需要替换PasswordEncoder 我们一般提供SpringSecurity为我们提供的BCryptPasswordEnc…

UE5.2打包安卓

目录 简介: 一. 根据官网配置 二. 手动定位SDK路径 三: 设置Android基本信息 四: 设置KeyStore 五: 开始打包 六:其他 七. 总结 简介: UE5.2 打包安卓是指将使用 Unreal Engine 5.2 开发的项目编译为可在安卓设备上运行的安装包。 以下是一般的打包步骤&#xff1a; 安装…