原題:http://www.51nod.com/Challenge/Problem.html#!#problemId=1183html
思路:https://www.dreamxu.com/books/dsa/dp/edit-distance.htmlspa
AC代碼:code
import sys def dp(d, a, b, i, j): if d[i][j] >= 0: return d[i][j] if a[i - 1] == b[j - 1]: d[i][j] = dp(d, a, b, i - 1, j - 1) else: d[i][j] = min(dp(d, a, b, i - 1, j), dp(d, a, b, i, j - 1), dp(d, a, b, i - 1, j - 1)) + 1 return d[i][j] if __name__ == '__main__': sys.setrecursionlimit(10000) a = input() b = input() d = [[-1 for i in range(len(b) + 1)] for j in range(len(a) + 1)] for i in range(len(b) + 1): d[0][i] = i for i in range(len(a) + 1): d[i][0] = i print(dp(d, a, b, len(a), len(b)))