跳到主要内容

72.编辑距离

链接:72.编辑距离
难度:Medium
标签:字符串、动态规划
简介:给你两个单词 word1 和 word2, 请返回将 word1 转换成 word2 所使用的最少操作数 。

题解 1 - python

  • 编辑时间:2023-10-23
  • 执行用时:84ms
  • 内存消耗:18.8MB
  • 编程语言:python
  • 解法介绍:dp判断每种情况下的最小操作数。
class Solution:
def minDistance(self, word1: str, word2: str) -> int:
n1, n2 = len(word1), len(word2)
@cache
def dfs(i1: int, i2: int) -> int:
if i1 == n1: return n2 - i2
if i2 == n2: return n1 - i1
if word1[i1] == word2[i2]: return dfs(i1 + 1, i2 + 1)
return min(
dfs(i1 + 1, i2) + 1, # i1 删除一个字符
dfs(i1, i2 + 1) + 1, # i1 插入一个字符
dfs(i1 + 1, i2 + 1) + 1 # i1 替换一个字符
)
return dfs(0, 0)