classSolution:defminDistance(self, word1:str, word2:str)->int:
n =len(word1)
m =len(word2)# 有一个字符串为空串if n * m ==0:return n + m
# DP 数组
D =[[0]*(m +1)for _ inrange(n +1)]# 边界状态初始化for i inrange(n +1):
D[i][0]= i
for j inrange(m +1):
D[0][j]= j
# 计算所有 DP 值for i inrange(1, n +1):for j inrange(1, m +1):
left = D[i -1][j]+1
down = D[i][j -1]+1
left_down = D[i -1][j -1]if word1[i -1]!= word2[j -1]:
left_down +=1
D[i][j]=min(left, down, left_down)return D[n][m]