解题思路: 动态规划 1.dp[i][j]定义 字符串A[0~i]和字符串B[0~j]的编辑距离 2.状态转移方程 dp[i][j] = min(dp[i-1][j]+1, dp[i][j-1]+1, dp[i-1][j-1]+t) 其中t当A[i] == B[j]时为1,其它为0 3.边界 dp[0][0] = 0 dp[0][j] = j dp[i][0] = i #============================================================================================= ''' #a = input() #b = input() a = 'abcdefg' b = 'abcdef' n = len(a) m = len(b) DP = [[0]*(m+1) for _ in range(n+1)] for i in range(n+1): DP[i][0] = i for j in range(m+1): DP[0][j] = j DP[0][0] = 0 # print(DP) for i in range(1, n+1): for j in range(1, m+1): if a[i-1] == b[j-1]: t = 0 else: t = 1 DP[i][j] = min(DP[i-1][j]+1, DP[i][j-1]+1, DP[i-1][j-1]+t) print(DP[-1][-1])