当前位置: 首页 > news >正文

算法72. 编辑距离

题目

给你两个单词 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’)

提示:

  • 0 <= word1.length, word2.length <= 500
  • word1 和 word2 由小写英文字母组成

题解

class Solution:def minDistance(self, word1: str, word2: str) -> int:n, m = len(word1), len(word2)c = {}def dfs(i:int,j:int)->int:if (i,j) in c:return c[(i,j)]if i<0:# 执行插入动作j+1次c[(i,j)]=j+1return j+1if j<0:# 执行删除动作i+1次c[(i,j)]=i+1return i+1if word1[i] == word2[j]:count_1=dfs(i-1,j-1)c[(i,j)]=count_1return count_1# 需要理解dfs(i-1,j)可以表示删除动作,因为word1变成word2需要word1去掉一个字符变成下一步的子问题,那么一定是执行的是word1删除掉一个字符。# dfs(i,j-1)表示插入,因为word1变成word2需要word2去掉一个字符变成下一步的子问题,那么一定是word1插入一个字符之后,word2去掉一个字符变成子问题。# dfs(i-1,j-1)表示替换,最后一个字符替换成一样的了,那么下一个子问题就可以都去掉一个字符做下一步比较了     count_2=min(dfs(i-1,j),dfs(i,j-1),dfs(i-1,j-1))+1c[(i,j)]=count_2return count_2return dfs(n-1,m-1)
http://www.dtcms.com/a/570887.html

相关文章:

  • 制作网站的软件下载金科做的网站
  • 黑龙江省建设工程招标网站外包网有哪些
  • 织梦做的网站为什么显示404临沂做网站哪里好
  • 做美食教程的网站有哪些快速排名优化推广价格
  • 本地佛山顺德网站建设外贸求购信息网
  • 专业新站整站快速排名公司windows2008 iis 网站
  • 从计数器到令牌桶:三种限流方案的落地与取舍
  • 信号与槽
  • 定制型网站建设移动网站mip
  • 网络系统管理与维护形考任务2sem优化软件选哪家
  • 小语种网站自己做网站能赚钱
  • 自己学习建设网站做老托福听力的网站
  • 设计商城网站建设服装设计参考网站
  • wordpress格式化sql串天津网络优化网站建设
  • 如何检测网站的打开速度游戏小程序开发报价
  • 网站被k原因网站设置关键字
  • VQ-VAE 代码详细解析及记录
  • 网站建设技术公司企业公示信息查询官网
  • 温州网站建设得花多少钱做自媒体挣钱的网站有哪些
  • p2p网站建设公司wordpress心情
  • pageadmin自助建站专业网页设计制作价格
  • 东莞智通人才网官方网站泉州网站公司
  • qq钓鱼网站在线生成器北京网站设计优刻
  • 诊断服务_0x10和0x11服务
  • 南宁良庆网站建设台州大型网站建设
  • Dirichlet分布的理解与应用
  • 站长工具友链查询科技感设计感的展厅
  • 海南省住房和城乡建设厅网站网上版单位门户网站
  • 微服务组件(E、L、N、O、G)
  • 做网站如何自己寻找客户海口网站提升排名