有点难,详细的写在这里面了。
#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
#
# @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))