类似于模式匹配,采用DP算法,
class Solution(object):
def minDistance(self, word1, word2):
"""
:type word1: str
:type word2: str
:rtype: int
"""
m = len(word1)
n = len(word2)
dp = [[0]*(m+1) for _ in range(n+1)]
for x in range(1, m+1):
dp[0][x] = x
for y in range(1, n+1):
dp[y][0] = y
for i in range(1, n+1):
for j in range(1, m+1):
if word1[j-1] == word2[i-1]:
dp[i][j] = dp[i-1][j-1]
else :
dp[i][j] = min(dp[i-1][j], dp[i-1][j-1], dp[i][j-1]) + 1
return dp[n][m]