1. 题目

给你两个单词 s 和 t,请你计算出将 s 转换成 t 所使用的最少操作数。

你可以对一个单词进行如下两种操作:

  • 删除一个字符
  • 替换一个字符

注意:
不允许插入操作
题目保证有解

示例:
输入:s = "abcdefg", t = "abdde"
输出:3提示:
1 <= len(s), len(t) <= 200

作者:力扣 (LeetCode)
链接:https://leetcode-cn.com/leetbook/read/high-frequency-algorithm-exercise/omxcgt/
来源:力扣(LeetCode) 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

2. 解题

类似题目:LeetCode 72. 编辑距离(DP)

  • 注意不能插入字符
class Solution {public:int edit_distance(string s, string t) {int n1 = s.size(), n2 = t.size();vector<vector<int>> dp(n1+1, vector<int>(n2+1, INT_MAX));for(int i = 0; i <= n1; ++i)dp[i][0] = i;//i个s字符变成0个t字符,需要删除次数for(int i = 0; i <= n2; ++i)dp[0][i] = i;for(int i = 1; i <= n1; ++i){for(int j = 1; j <= n2; ++j){if(s[i-1] == t[j-1])dp[i][j] = dp[i-1][j-1];else{dp[i][j] =  dp[i-1][j-1]+1;//替换s或t的字符if(i-1 >= j)//因为不能插入字符,删除 s 的 i 字符,前提是 s 字符串长度不能短于 t, 否则没有意义dp[i][j] = min(dp[i][j], dp[i-1][j]+1);if(j-1 >= i)//因为不能插入字符,删除 t 的 j 字符,前提是 t 字符串长度不能短于 s, 否则没有意义dp[i][j] = min(dp[i][j], dp[i][j-1]+1);}}}return dp[n1][n2];}
};

36 ms 13.2MB C++

LeetCode 编辑距离 II(DP)相关推荐

  1. LeetCode 72. 编辑距离(DP)

    1. 题目 给定两个单词 word1 和 word2,计算出将 word1 转换成 word2 所使用的最少操作数 . 你可以对一个单词进行如下三种操作: 插入一个字符 删除一个字符 替换一个字符 示 ...

  2. [LeetCode] Permutations II 全排列之二

    Given a collection of numbers that might contain duplicates, return all possible unique permutations ...

  3. HDOJ 5087 Revenge of LIS II DP

    HDOJ 5087 Revenge of LIS II DP DP的时候记录下能否够从两个位置转移过来. ... Revenge of LIS II Time Limit: 2000/1000 MS ...

  4. LeetCode 161. 相隔为 1 的编辑距离(DP/遍历)

    文章目录 1. 题目 2. 解题 2.1 DP超时 2.2 一次遍历 1. 题目 给定两个字符串 s 和 t,判断他们的编辑距离是否为 1. 注意: 满足编辑距离等于 1 有三种可能的情形: 往 s ...

  5. 程序员面试金典 - 面试题 01.05. 一次编辑(编辑距离,DP)

    1. 题目 字符串有三种编辑操作:插入一个字符.删除一个字符或者替换一个字符. 给定两个字符串,编写一个函数判定它们是否只需要一次(或者零次)编辑. 示例 1: 输入: first = "p ...

  6. leetcode 栈 II

    栈 880. 索引处的解码字符串 895. 最大频率栈 901. 股票价格跨度 907. 子数组的最小值之和 921. 使括号有效的最少添加 946. 验证栈序列 962. 最大宽度坡* 1003. ...

  7. LeetCode Non-overlapping Intervals(dp,greedy)

    问题: 给定一个区间的集合,找到需要移除区间的最小数量,使剩余区间互不重叠. 注意: 可以认为区间的终点总是大于它的起点.     区间 [1,2] 和 [2,3] 的边界相互"接触&quo ...

  8. poj-2336 Ferry Loading II(dp)

    题目链接: Ferry Loading II Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 3946   Accepted: ...

  9. CodeForces - 1480D2 Painting the Array II(dp)

    题目链接:点击查看 题目大意:给出一个长度为 nnn 的序列,现在要求拆分成两个子序列,使得两个子序列的贡献之和最 小.对于一个序列的贡献就是,去掉相邻且相同的字母后的长度,即 ∑i=1n[a[i]! ...

最新文章

  1. k8s-ingress 413 Request Entity Too Large
  2. UCloud全年营收 11.9 亿元,净利润 7715 万元
  3. cropper.js 图像旋转问题_快速提高前端开发效率:10个JavaScript图像处理库
  4. 2018牛客网暑期ACM多校训练营(第十场)J Rikka with Nickname(二分,字符串)
  5. iframe 子父窗口互掉 js
  6. 总结!进入libvirt的虚拟化世界(一)得到libvirt的连接
  7. python 数据逐个验证_案例实战 | Python 实现 AB 测试中常见的分层抽样与假设检验 (附代码和数据集)...
  8. python内置模块在哪个文件夹_用 Python 内置模块处理 ini 配置文件
  9. 每周荐书:JVM、Nginx、小程序(评论送书)
  10. 《21天学通Java(第6版)》—— 1.7 问与答
  11. java开发16g内存够吗_Java 内存模型 ,一篇就够了!
  12. HDU 1317 一路wa到西天
  13. USACO 2021-2022 December Contest Bronze 题解
  14. 京东云擎 php,为什么我登陆京东云擎控制台会错误?
  15. STAF rc = 6
  16. 腾讯浏览服务X5内核集成
  17. 用python绘制熊猫图案,在python中绘制熊猫系列的CDF
  18. ProxmoxVE折腾记录(二)--版本升级
  19. 阿里云服务器上面关闭tomcat报错
  20. SONY Xperia SP M35 解锁后重新上锁

热门文章

  1. pycharm Debug问题
  2. python的三大错误类型_学习Python时要避免的三个错误
  3. “指向指针的指针”的作用和应用
  4. 位图索引,数据库索引浅浅的学习
  5. YAML/Properties配置文件与Spring Boot(转)
  6. python--socket套接字/TCP
  7. jquery选中以什么开头的元素
  8. [Ubuntu]Apt-get命令参数详解
  9. MTK8127添加一个新的camera驱动
  10. vim 函数列表插件