动态规划-编辑距离
LeetCode72题: 1. 根据str1和str2的长度构建空矩阵 2. 将矩阵第一行和第二行赋上步数,如下,从左往右看,数字代表由最左边空字符''变为'j','ja',......,'jarrry'等的操作总步数 3. 从矩阵第二行开始遍历(即range(1,len(str1)+1)),str1的每个字符与str2中的'j','ja',......,'jarrry'比较 如果相等,则步数d为0 如果不等,步数d为1 此位置的总步数为matrix[i][j-1]+1, matrix[i-1][j], matrix[i-1][j-1]+d的最小值 4. 最终的总步数为matrix[len(str1)][len(str2)],即矩阵右下角的数字 下图是动态规划路径: python代码: def edit_distance(str1, str2): len1, len2 = len(str1), len(str2) matrix = [[0 for _ in range(len2+1)] for _ in range(len1+1)] for i in range(len1+1): matrix[i][0] = i for j in range(len2+1): matrix[0][j] = j for i in range(1, len1+1): # 注意从1开始 for j in