算法模板~字符串总结连接更新

This commit is contained in:
XuDaHaoRen
2021-08-26 13:01:19 +08:00
parent c8149ced78
commit eae239903b
5 changed files with 55 additions and 56 deletions

View File

@@ -14,7 +14,7 @@
## 判断子序列
[动态规划392.判断子序列](https://mp.weixin.qq.com/s/2pjT4B4fjfOx5iB6N6xyng) 给定字符串 s 和 t ,判断 s 是否为 t 的子序列。
[动态规划392.判断子序列](https://programmercarl.com/0392.判断子序列.html) 给定字符串 s 和 t ,判断 s 是否为 t 的子序列。
这道题目 其实是可以用双指针或者贪心的的,但是我在开篇的时候就说了这是编辑距离的入门题目,因为从题意中我们也可以发现,只需要计算删除的情况,不用考虑增加和替换的情况。
@@ -33,9 +33,9 @@ else dp[i][j] = dp[i][j - 1];
## 不同的子序列
[动态规划115.不同的子序列](https://mp.weixin.qq.com/s/1SULY2XVSROtk_hsoVLu8A) 给定一个字符串 s 和一个字符串 t ,计算在 s 的子序列中 t 出现的个数。
[动态规划115.不同的子序列](https://programmercarl.com/0115.不同的子序列.html) 给定一个字符串 s 和一个字符串 t ,计算在 s 的子序列中 t 出现的个数。
本题虽然也只有删除操作,不用考虑替换增加之类的,但相对于[动态规划392.判断子序列](https://mp.weixin.qq.com/s/2pjT4B4fjfOx5iB6N6xyng)就有难度了,这道题目双指针法可就做不了。
本题虽然也只有删除操作,不用考虑替换增加之类的,但相对于[动态规划392.判断子序列](https://programmercarl.com/0392.判断子序列.html)就有难度了,这道题目双指针法可就做不了。
当s[i - 1] 与 t[j - 1]相等时dp[i][j]可以有两部分组成。
@@ -68,9 +68,9 @@ if (s[i - 1] == t[j - 1]) {
## 两个字符串的删除操作
[动态规划583.两个字符串的删除操作](https://mp.weixin.qq.com/s/a8BerpqSf76DCqkPDJrpYg)给定两个单词 word1 和 word2找到使得 word1 和 word2 相同所需的最小步数,每步可以删除任意一个字符串中的一个字符。
[动态规划583.两个字符串的删除操作](https://programmercarl.com/0583.两个字符串的删除操作.html)给定两个单词 word1 和 word2找到使得 word1 和 word2 相同所需的最小步数,每步可以删除任意一个字符串中的一个字符。
本题和[动态规划115.不同的子序列](https://mp.weixin.qq.com/s/1SULY2XVSROtk_hsoVLu8A)相比,其实就是两个字符串可以都可以删除了,情况虽说复杂一些,但整体思路是不变的。
本题和[动态规划115.不同的子序列](https://programmercarl.com/0115.不同的子序列.html)相比,其实就是两个字符串可以都可以删除了,情况虽说复杂一些,但整体思路是不变的。
* 当word1[i - 1] 与 word2[j - 1]相同的时候
@@ -100,10 +100,10 @@ if (word1[i - 1] == word2[j - 1]) {
## 编辑距离
[动态规划72.编辑距离](https://mp.weixin.qq.com/s/8aG71XjSgZG6kZbiAdkJnQ) 给你两个单词 word1 和 word2请你计算出将 word1 转换成 word2 所使用的最少操作数 。
[动态规划72.编辑距离](https://programmercarl.com/0072.编辑距离.html) 给你两个单词 word1 和 word2请你计算出将 word1 转换成 word2 所使用的最少操作数 。
编辑距离终于来了,**有了前面三道题目的铺垫,应该有思路了**,本题是两个字符串可以增删改,比 [动态规划:判断子序列](https://mp.weixin.qq.com/s/2pjT4B4fjfOx5iB6N6xyng)[动态规划:不同的子序列](https://mp.weixin.qq.com/s/1SULY2XVSROtk_hsoVLu8A)[动态规划:两个字符串的删除操作](https://mp.weixin.qq.com/s/a8BerpqSf76DCqkPDJrpYg)都要复杂的多。
编辑距离终于来了,**有了前面三道题目的铺垫,应该有思路了**,本题是两个字符串可以增删改,比 [动态规划:判断子序列](https://programmercarl.com/0392.判断子序列.html)[动态规划:不同的子序列](https://programmercarl.com/0115.不同的子序列.html)[动态规划:两个字符串的删除操作](https://programmercarl.com/0583.两个字符串的删除操作.html)都要复杂的多。
在确定递推公式的时候,首先要考虑清楚编辑的几种操作,整理如下:
@@ -161,7 +161,7 @@ else {
## 总结
心思的录友应该会发现我用了三道题做铺垫,才最后引出了[动态规划72.编辑距离](https://mp.weixin.qq.com/s/8aG71XjSgZG6kZbiAdkJnQ) Carl的良苦用心呀你们体会到了嘛
心思的录友应该会发现我用了三道题做铺垫,才最后引出了[动态规划72.编辑距离](https://programmercarl.com/0072.编辑距离.html) Carl的良苦用心呀你们体会到了嘛
## 其他语言版本