LeetCode 编辑距离 II(DP)
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)相关推荐
- LeetCode 72. 编辑距离(DP)
1. 题目 给定两个单词 word1 和 word2,计算出将 word1 转换成 word2 所使用的最少操作数 . 你可以对一个单词进行如下三种操作: 插入一个字符 删除一个字符 替换一个字符 示 ...
- [LeetCode] Permutations II 全排列之二
Given a collection of numbers that might contain duplicates, return all possible unique permutations ...
- HDOJ 5087 Revenge of LIS II DP
HDOJ 5087 Revenge of LIS II DP DP的时候记录下能否够从两个位置转移过来. ... Revenge of LIS II Time Limit: 2000/1000 MS ...
- LeetCode 161. 相隔为 1 的编辑距离(DP/遍历)
文章目录 1. 题目 2. 解题 2.1 DP超时 2.2 一次遍历 1. 题目 给定两个字符串 s 和 t,判断他们的编辑距离是否为 1. 注意: 满足编辑距离等于 1 有三种可能的情形: 往 s ...
- 程序员面试金典 - 面试题 01.05. 一次编辑(编辑距离,DP)
1. 题目 字符串有三种编辑操作:插入一个字符.删除一个字符或者替换一个字符. 给定两个字符串,编写一个函数判定它们是否只需要一次(或者零次)编辑. 示例 1: 输入: first = "p ...
- leetcode 栈 II
栈 880. 索引处的解码字符串 895. 最大频率栈 901. 股票价格跨度 907. 子数组的最小值之和 921. 使括号有效的最少添加 946. 验证栈序列 962. 最大宽度坡* 1003. ...
- LeetCode Non-overlapping Intervals(dp,greedy)
问题: 给定一个区间的集合,找到需要移除区间的最小数量,使剩余区间互不重叠. 注意: 可以认为区间的终点总是大于它的起点. 区间 [1,2] 和 [2,3] 的边界相互"接触&quo ...
- poj-2336 Ferry Loading II(dp)
题目链接: Ferry Loading II Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 3946 Accepted: ...
- CodeForces - 1480D2 Painting the Array II(dp)
题目链接:点击查看 题目大意:给出一个长度为 nnn 的序列,现在要求拆分成两个子序列,使得两个子序列的贡献之和最 小.对于一个序列的贡献就是,去掉相邻且相同的字母后的长度,即 ∑i=1n[a[i]! ...
最新文章
- k8s-ingress 413 Request Entity Too Large
- UCloud全年营收 11.9 亿元,净利润 7715 万元
- cropper.js 图像旋转问题_快速提高前端开发效率:10个JavaScript图像处理库
- 2018牛客网暑期ACM多校训练营(第十场)J	Rikka with Nickname(二分,字符串)
- iframe 子父窗口互掉 js
- 总结!进入libvirt的虚拟化世界(一)得到libvirt的连接
- python 数据逐个验证_案例实战 | Python 实现 AB 测试中常见的分层抽样与假设检验 (附代码和数据集)...
- python内置模块在哪个文件夹_用 Python 内置模块处理 ini 配置文件
- 每周荐书:JVM、Nginx、小程序(评论送书)
- 《21天学通Java(第6版)》—— 1.7 问与答
- java开发16g内存够吗_Java 内存模型 ,一篇就够了!
- HDU 1317 一路wa到西天
- USACO 2021-2022 December Contest Bronze 题解
- 京东云擎 php,为什么我登陆京东云擎控制台会错误?
- STAF rc = 6
- 腾讯浏览服务X5内核集成
- 用python绘制熊猫图案,在python中绘制熊猫系列的CDF
- ProxmoxVE折腾记录(二)--版本升级
- 阿里云服务器上面关闭tomcat报错
- SONY Xperia SP M35 解锁后重新上锁