distance.py 586 B

12345678910111213141516171819202122
  1. def edit_distance(text1, text2):
  2. # 初始化矩阵
  3. m = len(text1) + 1
  4. n = len(text2) + 1
  5. dp = [[0 for _ in range(n)] for _ in range(m)]
  6. # 初始化第一行和第一列
  7. for i in range(1, m):
  8. dp[i][0] = i
  9. for j in range(1, n):
  10. dp[0][j] = j
  11. # 计算编辑距离
  12. for i in range(1, m):
  13. for j in range(1, n):
  14. if text1[i-1] == text2[j-1]:
  15. dp[i][j] = dp[i-1][j-1]
  16. else:
  17. dp[i][j] = min(dp[i-1][j], dp[i][j-1], dp[i-1][j-1]) + 1
  18. # 返回编辑距离
  19. return dp[-1][-1]