首页 > 其他分享 >编辑距离

编辑距离

时间:2022-11-09 22:02:18浏览次数:58  
标签:return .. int s2 s1 距离 编辑 dp

编辑距离

[传送门]( 72. 编辑距离 - 力扣(LeetCode) )

给你两个单词 word1 和 word2, 请返回将 word1 转换成 word2 所使用的最少操作数 。

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

  • 插入一个字符

  • 删除一个字符

  • 替换一个字符

一、思路

编辑距离问题就是给我们两个字符串 s1s2,只能用三种操作,让我们把 s1 变成 s2,求最少的操作数。需要明确的是,不管是把 s1 变成 s2 还是反过来,结果都是一样的,所以后文就以 s1 变成 s2 举例。

解决两个字符串的动态规划问题,一般都是用两个指针 i, j 分别指向两个字符串的最后,然后一步步往前移动,缩小问题的规模

PS:其实让 i, j 从前往后移动也可以,改一下 dp 函数/数组的定义即可,思路是完全一样的。

base case 是 i 走完 s1j 走完 s2,可以直接返回另一个字符串剩下的长度。

对于每对儿字符 s1[i]s2[j],可以有四种操作:

if s1[i] == s2[j]:
    啥都别做(skip)
    i, j 同时向前移动
else:
    三选一:
        插入(insert)
        删除(delete)
        替换(replace)

二、暴力解法代码会超时

标签:return,..,int,s2,s1,距离,编辑,dp
From: https://www.cnblogs.com/ANDQE/p/16875314.html

相关文章