程序员最近都爱上了这个网站  程序员们快来瞅瞅吧!  it98k网:it98k.com

本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长

+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

暂无数据

leetode 72. 编辑距离

发布于2020-03-18 13:14     阅读(1222)     评论(0)     点赞(9)     收藏(1)


给定两个单词 word1 和 word2,计算出将 word1 转换成 word2 所使用的最少操作数 。

你可以对一个单词进行如下三种操作:

插入一个字符
删除一个字符
替换一个字符
示例 1:

输入: word1 = "horse", word2 = "ros"
输出: 3
解释: 
horse -> rorse (将 'h' 替换为 'r')
rorse -> rose (删除 'r')
rose -> ros (删除 'e')
示例 2:

输入: word1 = "intention", word2 = "execution"
输出: 5
解释: 
intention -> inention (删除 't')
inention -> enention (将 'i' 替换为 'e')
enention -> exention (将 'n' 替换为 'x')
exention -> exection (将 'n' 替换为 'c')
exection -> execution (插入 'u')

  1. class Solution:
  2. def minDistance(self, word1: str, word2: str) -> int:
  3. n1, n2 = len(word1), len(word2)
  4. dp = [[0] * (n2+1) for _ in range(n1+1)]
  5. for i in range(n1+1):
  6. dp[i][0] = i
  7. for i in range(n2+1):
  8. dp[0][i] = i
  9. for i in range(1, n1+1):
  10. for j in range(1, n2+1):
  11. if word1[i-1] == word2[j-1]:
  12. dp[i][j] = dp[i-1][j-1]
  13. else:
  14. dp[i][j] = min(min(dp[i-1][j-1], dp[i-1][j]), dp[i][j-1]) + 1
  15. return dp[-1][-1]

 



所属网站分类: 技术文章 > 博客

作者:sjhjf0293

链接:https://www.pythonheidong.com/blog/article/265599/cdf925f030eccec685ac/

来源:python黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

9 0
收藏该文
已收藏

评论内容:(最多支持255个字符)