leetcode 72. 编辑距离

news/2024/11/30 9:48:34/

题目链接:leetcode 72

1.题目

给你两个单词 word1 和 word2, 请返回将 word1 转换成 word2 所使用的最少操作数 。

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

1)插入一个字符
2)删除一个字符
3)替换一个字符

2.示例

1)示例 1:
输入:word1 = “horse”, word2 = “ros”
输出:3
解释:
horse -> rorse (将 ‘h’ 替换为 ‘r’)
rorse -> rose (删除 ‘r’)
rose -> ros (删除 ‘e’)

2)示例 2:
输入:word1 = “intention”, word2 = “execution”
输出:5
解释:
intention -> inention (删除 ‘t’)
inention -> enention (将 ‘i’ 替换为 ‘e’)
enention -> exention (将 ‘n’ 替换为 ‘x’)
exention -> exection (将 ‘n’ 替换为 ‘c’)
exection -> execution (插入 ‘u’)

3)提示:
0 <= word1.length, word2.length <= 500
word1 和 word2 由小写英文字母组成

3.分析

f[i][j]表示word1前i个字符和word2前j个字符匹配所需要花费的最小代价,那么f[i][j]可以由f[i-1][j-1]、f[i-1][j]以及f[i][j-1]所得到。
1)当f[i][j]由f[i-1][j-1]得到时,word1[i]如果==word2[j],那么就不用操作,要不需要将word1[i]替换为word2[j]
2)当f[i][j]由f[i][j-1]得到时,也就是说word1前i个字符已经和word2前j-1个字符匹配,只需要word1添加一个字符word2[j]即可
3)当f[i][j]由f[i-1][j]得到时,也就是说word1前i-1个字符已经和word2前j个字符匹配,那么只需要删除word1第i个字符即可
需要注意的是,在预处理部分不仅需要考虑f[0][0],还需要考虑f[0]i以及f[i]0

4.代码

class Solution {
public:int f[510][510];int minDistance(string word1, string word2) {memset(f,10,sizeof(f));f[0][0]=0;for(int i=1;i<=word2.size();i++)f[0][i]=f[0][i-1]+1;for(int i=1;i<=word1.size();i++)f[i][0]=f[i-1][0]+1;for(int i=1;i<=word1.size();i++)for(int j=1;j<=word2.size();j++){int cnt=1;if(word1[i-1]==word2[j-1]) {f[i][j]=min(f[i][j-1]+1,min(f[i-1][j]+1,f[i-1][j-1]));}elsef[i][j]=min(f[i][j-1],min(f[i-1][j],f[i-1][j-1]))+1;}return f[word1.size()][word2.size()];}
};

http://www.ppmy.cn/news/285122.html

相关文章

技术交流 QQ

如有任何问题 可以 加我QQ 1660282461 或者技术讨论群 547188251 by tanfy 2017-07-27

腾讯QQ的回应来了~

最近某程序员大佬发现一个不得了的事情&#xff1a;腾讯QQ扫描读取所有浏览器的记录。这个事情一下子就火了&#xff0c;浏览器记录你都扫描&#xff0c;我还有隐私可言&#xff1f; 外界的揣测非常多&#xff0c;有说腾讯QQ是去做用户画像的&#xff0c;也有说去做电商购物分析…

论坛网址

论坛网址 网易 http://www.163.com   新浪 http://www.sina.com.cn   17173游戏论坛 http://bbs.17173.com   TOM海云天 http://bbs.tom.com   西陆 http://www.xilu.com   中国学生网论坛 http://www.6to23.com   网际精灵社区 http://club.netsprite.com   QQ讨…

Discuz Q论坛之宝塔部署

中文 PC 互联网最知名的社区开源软件 Discuz! 首先&#xff0c;当然要下载宝塔面板&#xff0c;可以参考我另一篇文章。 博客网站之WordPress急速搭建https://blog.csdn.net/Afghanis/article/details/124757980安装&#xff0c;登录后要绑定宝塔账号&#xff0c;否则是不能使…

原腾讯QQ技术总监、T13专家,黄希彤被裁,原因竟是不愿意被 PUA ?

整理 | 朱珂欣 出品 | CSDN程序人生&#xff08;ID&#xff1a;coder_life&#xff09; 曾经风光无限的互联网“淘金地”&#xff0c;为无数技术人提供了造梦机会&#xff0c;也带领着一批程序员走向致富之路。然而&#xff0c;如今国内各大厂也在经历着“瘦身”运动。 据 T…

马化腾-QQ

马化腾 求助编辑百科名片 马化腾 广东汕头人&#xff0c;腾讯主要创办人之一&#xff0c;现担任公司控股董事会主席兼首席执行官&#xff0c;被称为“QQ之父”&#xff0c;曾在深圳大学主修计算机及应用&#xff0c;于1993年取得深大理学士学位。1998年和好友张志东注册成立&qu…

原腾讯QQ技术总监、T13专家,黄希彤被“离职”,原因竟是……

曾经风光无限的互联网“淘金地”&#xff0c;为无数技术人提供了造梦机会&#xff0c;也带领着一批程序员走向致富之路。然而&#xff0c;如今国内各大厂也在经历着“瘦身”运动。 据 TechWeb 消息&#xff0c;近日&#xff0c;腾讯前端开发领袖、原腾讯 QQ 空间技术总监、T13…

一起学SF框架系列5.3-模块Beans-bean与Spring容器的交互方式

正常情况下&#xff0c;应用中的bean同spring容器关系如下图&#xff1a; 尽管应用bean是Spring容器创建并建立依赖关系&#xff0c;应用只需使用bean即可&#xff0c;因此对bean来说Spring容器就是无感知的&#xff08;无侵入编程&#xff09;。但是还是存在需求需要应用bea…