leetcode刷题 log day56(编辑距离总结篇~
创始人
2024-03-24 06:03:51
0
  • 583. 两个字符串的删除操作
    思路】这道题只有删除操作,两个字符串相等时,步数不变,不相等时,只能做删除操作,删除有三种情况:删除 word1 或删除 word2 或者两个字符串都删除,取三种情况的最小值。

    var minDistance = function(word1, word2) {let dp = new Array(word1.length + 1).fill().map(() => Array(word2.length + 1).fill(0));// 初始化for (let i = 1; i <= word1.length; i++) {dp[i][0] = i;}for (let j = 1; j <= word2.length; j++) {dp[0][j] = j;}for (let i = 1; i <= word1.length; i++) {for (let j = 1; j <= word2.length; j++) {if (word1[i - 1] === word2[j - 1]) dp[i][j] = dp[i - 1][j - 1]else dp[i][j] = Math.min(dp[i - 1][j] + 1, dp[i][j - 1] + 1, dp[i - 1][j -1] + 2);}}return dp[word1.length][word2.length];
    };
    
  • 72. 编辑距离
    思路】只能说只要图画的够丑就不用加水印
    请添加图片描述

    var minDistance = function(word1, word2) {let dp = new Array(word1.length + 1).fill().map(() => Array(word2.length + 1).fill(0));// 初始化for (let i = 1; i <= word1.length; i++) dp[i][0] = i;for (let j = 1; j <= word2.length; j++) dp[0][j] = j;for (let i = 1; i <= word1.length; i++) {for (let j = 1; j <= word2.length; j++) {if (word1[i - 1] === word2[j - 1]) dp[i][j] = dp[i - 1][j - 1]else dp[i][j] = Math.min(dp[i - 1][j] + 1, dp[i][j - 1] + 1, dp[i - 1][j - 1] + 1);}}return dp[word1.length][word2.length];
    };
    

编辑距离总结~

  • 判断子序列:s 是否是 t 的子序列,dp[i][j] 两个字符串目前相等的个数:

    • 相等: dp[i][j] = dp[i - 1][j - 1] + 1
    • 不相等:dp[i][j] = dp[i - 1][j]
  • 不同的子序列:计算 t 在 s 的子序列中出现的次数:

    • 相等:用 s[i - 1] 匹配 + 不用 s[i - 1] 匹配 dp[i][j] = dp[i - 1][j - 1] + dp[i - 1][j]
    • 不相等:dp[i][j] = dp[i -1][j]
  • 两个字符串中的删除操作:

    • 相等:不做操作dp[i][j] = dp[i - 1][j - 1]
    • 不相等:可以删除 word1 中的元素、删除 word2 中的元素或两个字符串都删除元素,三者取最小值 dp[i][j] = Math.min(dp[i - 1][j - 1] + 2, dp[i - 1][j] + 1, dp[i][j - 1] + 1)
  • 编辑距离见上~

参考代码随想录:https://www.programmercarl.com/

相关内容

热门资讯

喜欢穿一身黑的男生性格(喜欢穿... 今天百科达人给各位分享喜欢穿一身黑的男生性格的知识,其中也会对喜欢穿一身黑衣服的男人人好相处吗进行解...
发春是什么意思(思春和发春是什... 本篇文章极速百科给大家谈谈发春是什么意思,以及思春和发春是什么意思对应的知识点,希望对各位有所帮助,...
网络用语zl是什么意思(zl是... 今天给各位分享网络用语zl是什么意思的知识,其中也会对zl是啥意思是什么网络用语进行解释,如果能碰巧...
为什么酷狗音乐自己唱的歌不能下... 本篇文章极速百科小编给大家谈谈为什么酷狗音乐自己唱的歌不能下载到本地?,以及为什么酷狗下载的歌曲不是...
家里可以做假山养金鱼吗(假山能... 今天百科达人给各位分享家里可以做假山养金鱼吗的知识,其中也会对假山能放鱼缸里吗进行解释,如果能碰巧解...
华为下载未安装的文件去哪找(华... 今天百科达人给各位分享华为下载未安装的文件去哪找的知识,其中也会对华为下载未安装的文件去哪找到进行解...
四分五裂是什么生肖什么动物(四... 本篇文章极速百科小编给大家谈谈四分五裂是什么生肖什么动物,以及四分五裂打一生肖是什么对应的知识点,希...
怎么往应用助手里添加应用(应用... 今天百科达人给各位分享怎么往应用助手里添加应用的知识,其中也会对应用助手怎么添加微信进行解释,如果能...
苏州离哪个飞机场近(苏州离哪个... 本篇文章极速百科小编给大家谈谈苏州离哪个飞机场近,以及苏州离哪个飞机场近点对应的知识点,希望对各位有...
客厅放八骏马摆件可以吗(家里摆... 今天给各位分享客厅放八骏马摆件可以吗的知识,其中也会对家里摆八骏马摆件好吗进行解释,如果能碰巧解决你...