有点难,详细的写在这里面了。

#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
# 
# @param str1 string字符串 
# @param str2 string字符串 
# @return int整型
#
class Solution:
    def editDistance(self , str1: str, str2: str) -> int:
        # write code here
        # 初始化dp矩阵
        dp = [[0]*(len(str2)+1) for _ in range(len(str1)+1)]
        # 修改边界条件,修改第0行和第0列
        for j in range(1+len(str2)):
            dp[0][j] = j
        for i in range(1+len(str1)):
            dp[i][0] = i
        # 修改dp
        for i in range(1 , len(str1)+1):
            for j in range(1 , len(str2)+1):
                if str1[i-1] == str2[j-1]:
                    dp[i][j] = dp[i-1][j-1]
                else:
                    dp[i][j] = min(dp[i-1][j-1] , dp[i-1][j],dp[i][j-1])+1
        return dp[len(str1)][len(str2)]

str1 = "nowcoder"
str2 = "new"
print(Solution().editDistance(str1 , str2))