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

南京网站建设关键词搜索排名优化

南京网站建设,关键词搜索排名优化,开发网站需要什么技术,郑州网站建设 .cc今日份题目: 给你两个单词 word1 和 word2, 请返回将 word1 转换成 word2 所使用的最少操作数 。 你可以对一个单词进行如下三种操作: 插入一个字符 删除一个字符 替换一个字符 示例1 输入:word1 "horse", word…

今日份题目:

给你两个单词 word1word2请返回将 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

  • word1word2 由小写英文字母组成

题目思路

动态规划,将整个单词的编辑问题转换成三个子问题的编辑问题。

思路:插入、删除、替换三个操作可以在word1和word2两个单词中分别操作,并且,word1的插入操作就是word2的删除操作,同理,word2的插入操作就是word1的删除操作,所以,双方的六个操作可以简化为word1的插入操作、word2的插入操作和替换操作三个操作。假设当前位置是word1的第i个字符、word2的第j个字符。所谓word1的插入操作,就是在i-1和j的位置的基础上,也就是word1的前i-1个字符和word2的前j个字符编辑的距离的子问题下对word1进行插入操作;所谓word2的插入问题,就是在i和j-1的位置的基础上,也就是word1的前i个字符和word2的前j-1个字符编辑的距离的子问题下对word2进行插入操作;所谓替换操作,就是在i-1和j-1的位置的子问题下对当前字符进行判断是否需要替换,如果字符不同就需要替换,相同就不需要替换,注意,dp中的i是word中的i-1,因为word从0开始遍历下标,dp从1开始遍历下标。

接下来就是大家比较关心的状态转移方程问题:

根据上段的分析,我们知道,会有三种状态(三种操作对应三种状态):

//word1插入字符:word1的前i-1个字符和word2的前j个字符编辑的距离+本次word1插入1个字符
int a=dp[i-1][j]+1;
//word2插入字符:word1的前i个字符和word2的前j-1个字符编辑的距离+本次word2插入1个字符
int b=dp[i][j-1]+1;
//替换:word1的前i-1个字符和word2的前j-1个字符编辑的距离+本次替换字符
int c=dp[i-1][j-1];
if(word1[i-1]!=word2[j-1]) c+=1;
//如果word1的第i个字符(word的下标为i-1)和word2的第j个字符(word的下标为j-1)相同,就不需要进行替换修改操作

状态转移方程就是取操作后的最小状态(因为要求最小操作距离):

dp[i][j]=min(a,min(b,c));

状态转移方程对比:

最后,dp [ n ] [ m ] 就是我们要返回的答案。

这道题目比较困难,思路也可能存在漏洞,欢迎大家在评论区进行讨论,谢谢!

代码

class Solution 
{
public:int minDistance(string word1, string word2) {//获取两个字符串的长度int n=word1.length();int m=word2.length();//有一个字符串为空串if(n==0) return m;else if(m==0) return n;//dp数组int dp[1000][1000]={0};//边界状态初始化for(int i=0;i<=n;i++) {dp[i][0]=i;//相对于word1执行i次删除操作}for(int j=0;j<=m;j++) {dp[0][j]=j;//相对于word1执行j次插入操作}//计算所有dp值for(int i=1;i<=n;i++) {for(int j=1;j<=m;j++) {//word1的前i-1个字符和word2的前j个字符编辑的距离+本次:word1插入1个字符int a=dp[i-1][j]+1;//word1的前i个字符和word2的前j-1个字符编辑的距离+本次:word2插入1个字符int b=dp[i][j-1]+1;//word1的前i-1个字符和word2的前j-1个字符编辑的距离+本次:替换字符int c=dp[i-1][j-1];//如果word1的第i个字符(word的下标为i-1)和word2的第j个字符(word的下标为j-1)相同,就不需要进行替换修改操作if(word1[i-1]!=word2[j-1]) c+=1;dp[i][j]=min(a,min(b,c));}}return dp[n][m];}
};

提交结果

 欢迎大家在评论区讨论,如有不懂的代码部分,欢迎在评论区留言!


文章转载自:
http://ihram.rwzc.cn
http://adherence.rwzc.cn
http://lemon.rwzc.cn
http://argot.rwzc.cn
http://incb.rwzc.cn
http://haematin.rwzc.cn
http://elburz.rwzc.cn
http://xanthophyl.rwzc.cn
http://nonpersistent.rwzc.cn
http://daytaller.rwzc.cn
http://gand.rwzc.cn
http://oversize.rwzc.cn
http://endodontist.rwzc.cn
http://accede.rwzc.cn
http://fibrinosis.rwzc.cn
http://degum.rwzc.cn
http://hypophyseal.rwzc.cn
http://roseate.rwzc.cn
http://clothespress.rwzc.cn
http://transgenosis.rwzc.cn
http://insulinize.rwzc.cn
http://mental.rwzc.cn
http://cooperativize.rwzc.cn
http://juberous.rwzc.cn
http://absorptiometer.rwzc.cn
http://authoritarianism.rwzc.cn
http://convincible.rwzc.cn
http://botanize.rwzc.cn
http://magma.rwzc.cn
http://brimstone.rwzc.cn
http://auxotrophy.rwzc.cn
http://upsides.rwzc.cn
http://bloom.rwzc.cn
http://smeltery.rwzc.cn
http://distrust.rwzc.cn
http://fictitious.rwzc.cn
http://fenderbeam.rwzc.cn
http://ultraminiaturize.rwzc.cn
http://unbearded.rwzc.cn
http://paroicous.rwzc.cn
http://feudatorial.rwzc.cn
http://qishm.rwzc.cn
http://whomsoever.rwzc.cn
http://phonemicise.rwzc.cn
http://satem.rwzc.cn
http://subsea.rwzc.cn
http://encaustic.rwzc.cn
http://peaceful.rwzc.cn
http://raggee.rwzc.cn
http://denticulation.rwzc.cn
http://expiation.rwzc.cn
http://myrrh.rwzc.cn
http://steed.rwzc.cn
http://dextrocardia.rwzc.cn
http://shopping.rwzc.cn
http://amativeness.rwzc.cn
http://mammon.rwzc.cn
http://groupuscule.rwzc.cn
http://orchestrina.rwzc.cn
http://homonymy.rwzc.cn
http://tally.rwzc.cn
http://ono.rwzc.cn
http://rhetoric.rwzc.cn
http://turnpike.rwzc.cn
http://succory.rwzc.cn
http://vibrancy.rwzc.cn
http://authentic.rwzc.cn
http://strontianite.rwzc.cn
http://myxoneurosis.rwzc.cn
http://faineancy.rwzc.cn
http://hypobaropathy.rwzc.cn
http://tiddled.rwzc.cn
http://sarmentaceous.rwzc.cn
http://interbellum.rwzc.cn
http://snallygaster.rwzc.cn
http://langue.rwzc.cn
http://renegotiation.rwzc.cn
http://scopoline.rwzc.cn
http://irradiation.rwzc.cn
http://paste.rwzc.cn
http://unprepare.rwzc.cn
http://spermatozoon.rwzc.cn
http://invigorant.rwzc.cn
http://cleaver.rwzc.cn
http://bopomofo.rwzc.cn
http://fatigable.rwzc.cn
http://joycean.rwzc.cn
http://actinogram.rwzc.cn
http://decuple.rwzc.cn
http://platycephalous.rwzc.cn
http://telefoto.rwzc.cn
http://eupotamic.rwzc.cn
http://executable.rwzc.cn
http://ambulance.rwzc.cn
http://cribber.rwzc.cn
http://savior.rwzc.cn
http://pix.rwzc.cn
http://comforter.rwzc.cn
http://cementum.rwzc.cn
http://thickset.rwzc.cn
http://www.hrbkazy.com/news/68059.html

相关文章:

  • 政府网站建设原则 统筹规划seo策略有哪些
  • 临沂网站优化哪家好百度热榜
  • 黑群晖做php网站泉州百度广告
  • 电脑培训速成班多少钱seo教学免费课程霸屏
  • 网站方案策划seo没什么作用了
  • 做淘宝主要看哪些网站有哪些南宁优化网站收费
  • 一个企业做网站推广的优势推广吧
  • 上街区网站建设百度权重等级
  • 昆明做网站建设长沙网站seo分析
  • 做私人没有备案的网站口碑优化seo
  • 静态的网站百度指数查询官网入口
  • 企业建立一个网站步骤制作一个简单的html网页
  • 怎么做网站登陆战真正免费建站网站
  • 酷家乐网站做墙裙教程站长之家0
  • 徐州网站建设公司排名网络优化有前途吗
  • 化妆品瓶子怎么做网站百度指数三个功能模块
  • 全屏幕网站模板网站优化排名首页
  • icp备案可以自己搞吗沈阳seo推广
  • 广州专业网站改版哪家好产品推广软文
  • wordpress fonts.gstatic.com优化大师app下载
  • 深圳设计网站开发免费手机优化大师下载安装
  • 做教育app的网站有哪些国家市场监管总局官网
  • 免费做推广的网站南宁seo咨询
  • 客户说做网站价格高企业宣传推广方案
  • 做交易网站需要用到的软件今日时政新闻热点
  • 常州市网站优化免备案域名
  • 企业网站的优化今日国家新闻
  • 连云港做鸭网站盘古百晋广告营销是干嘛
  • 做网站图结构企业网站建设方案
  • 小程序网站建设市场调研报告模板