题目
题解
class Solution:def minDistance(self, word1: str, word2: str) -> int:# 定义状态:dp[i][j]表示将word1[0:i]转换成word2[0:j]所使用的最少操作数dp = [[0 for j in range(len(word2)+1)] for i in range(len(word1)+1)]# badcase: dp[0][j] = j, dp[i][0] = ifor i in range(1, len(word1)+1):dp[i][0] = ifor j in range(1, len(word2)+1):dp[0][j] = j# 状态转移for i in range(1, len(word1) + 1):for j in range(1, len(word2) + 1):# skipif word1[i-1] == word2[j-1]:dp[i][j] = dp[i-1][j-1]else:# min(增加,删除,替换)# 注意,替换也要加1个动作dp[i][j] = min(dp[i][j-1] + 1, dp[i-1][j] + 1, dp[i-1][j-1] + 1)return dp[len(word1)][len(word2)]