当前位置: 首页 > news >正文

算法题打卡day56-编辑距离 | 583. 两个字符串的删除操作、72. 编辑距离

583. 两个字符串的删除操作 - 力扣(LeetCode)

状态:查看思路后AC。

和查找子序列的操作类似,但是考虑的是删除操作。代码如下:

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

72. 编辑距离 - 力扣(LeetCode)

状态:查看思路后AC。

综合了前面几题,在不同的情况下要考虑增、删、改三种情况,对于多个数的求min技巧get(min({num1, num2, num3});),代码如下:

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

http://www.lryc.cn/news/155017.html

相关文章:

  • SQL中的CASE WHEN语句:从基础到高级应用指南
  • 超时取消子线程任务
  • 模块化---common.js
  • VSCode下载、安装及配置、调试的一些过程理解
  • KC705开发板——MGT IBERT测试记录
  • 前端代码优化散记
  • HTML <map> 标签的使用
  • stable diffusion实践操作-大模型介绍
  • W5500-EVB-PICO进行MQTT连接订阅发布教程(十二)
  • 90、00后严选出的数据可视化工具:奥威BI工具
  • 删除maven中出现.lastUpdate结尾的文件
  • Cannot assign to read only property ‘exports‘ of object ‘#<Object>‘
  • Dockerfile中编译、打包、部署spring boot项目
  • 微型计算机原理知识点总结(一)
  • 【postgresql 基础入门】psql客户端的使用方法
  • QTcpSocket发送数据方法
  • select 语句执行顺序
  • PMD 检查java代码:避免将内部数组直接返回给调用者(MethodReturnsInternalArray)
  • ActiveMQ配置初探
  • 【官方中文文档】Mybatis-Spring #示例代码
  • python二级例题
  • 【java】【项目实战】[外卖九]项目优化(缓存)
  • Scala集合常用函数与集合计算简单函数,高级计算函数Map和Reduce等
  • You must install at least one postgresql-client-<version> package
  • 爬虫源码---爬取自己想要看的小说
  • 【AGC】云数据库API9开发问题汇总
  • ASP.NET Core IOC容器
  • 入门力扣自学笔记277 C++ (题目编号:42)(动态规划)
  • SwiftUI实现iPad多任务分屏
  • maven依赖,继承