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

有没有专门做艺术的网站下载优化大师并安装

有没有专门做艺术的网站,下载优化大师并安装,wordpress查询收录,怎么优化网站的单个关键词排名1. 问题引入 链接:leetcode_28 题目:s1字符串是否包含s2字符串,如果包含返回s1中包含s2的最左开头位置,不包含返回-1 暴力方法就是s1的每个位置都做开头,然后去匹配s2整体,时间复杂度O(n*m) KMP算法可以…

1. 问题引入

链接:leetcode_28

题目:s1字符串是否包含s2字符串,如果包含返回s1中包含s2的最左开头位置,不包含返回-1

暴力方法就是s1的每个位置都做开头,然后去匹配s2整体,时间复杂度O(n*m)

KMP算法可以做到时间复杂度O(n+m),那这个算法是怎样实现的呢?

2. 核心概念:最长公共前后缀

对于某个字符,不含该字符,前面的字符串的前后缀最大匹配长度,需要把这些数值传给一个数组(next数组),下标 i 表示第 i 个字符前的字符串(即从 0 ~ i-1 的字符串)的前后缀最大匹配长度

非常不好理解,请看示例:

这个玩意有什么用呢,看后面的核心步骤就理解了。

3. 核心过程

 【过程分解】

在比对的过程中,有两个数 xy 记录两者对比到的下标

1)当两字符相同,同时x++y++,继续对比下一个数据就好了

2)当s1s2对应的字符不匹配时,则将y跳转到next数组对应数据下标的字符,在此例子中是将y跳转到下标6的位置

PS:每次跳转时,如果此时y0,只需要x++即可,因为y已经没有可以再退的字符了


跳转之后:

此时xy对应的下标依旧不匹配,再按照之前的逻辑,找此时y对应的next数组的数据,并跳转,应该跳转到3


再跳转后:

xy对应的字符相同时,在x++y++看下一个字符是否匹配,但是因为x已经越界,但s2还没匹配完,说明匹配失败,返回 -1

【总结】

一共有两种情况分别是

  1. 两字符相同,同时x++y++,看后续是否相同
  2. 两字符不同,但y在下标0位置,只需要x++;若y不在0位置,将y定位到对应next数组相应数据的位置

在每一次操作结束时,都需要判断xy是否已经越界

如果y等于s2的长度(包括x和y同时越界和只有y越界),则说明匹配成功,结果为x-y (情况1

否则,x越界,y没越界,说明匹配失败,返回-1     (情况2

此处对应代码的return返回值

【解惑】

1)为什么s20~5下标的字符和s17~12下标的字符对应,可以直接不用比对?

2)如果在s1的7下标之前还有与s2配对吗?

没有了,因为next数组就已经决定了这是最长的前后缀匹配长度,再长就不匹配了

  • 为什么会加速?

每次匹配时只需要从该字符对应的 next 数组的数开始匹配,相当于跳过了一部分的数据对比过程

【next 数组的创建】

有点类似动态规划,通过前面的已知数据,推出当前的数据

操作过程

前一位的字符,与其next数组对应的下标的字符相同,则该字符对应的数为此下标数+1

如果不相同,若 next 数组对应数据不为0,则跳转到对应下标,若为0则此字符对应 next 值为0

4. 例题

如果还不是很清晰,可以结合模版题和代码一起分析,会更好理解

模版题:链接

参考代码:

class Solution {
public:int strStr(string s1, string s2) {int m = s1.size(), n = s2.size();vector<int> next(n + 5);next[0] = -1;next[1] = 0; // 0和1下标next值默认确定int i = 2, cn = 0; // i表示当前对应下标,cn表示next值// 生成next数组// 结合前面的分析进行情况分类while (i < n){if (s2[i - 1] == s2[cn])next[i++] = ++cn;else if (cn > 0)cn = next[cn];elsenext[i++] = 0;}  int x = 0, y = 0;// x表示s1当前比对的位置// y表示s2当前比对的位置while (x < m && y < n){if (s1[x] == s2[y]){x++;y++;}else if (y == 0)x++;elsey = next[y]; }return y == n ? x - y : -1;}};


文章转载自:
http://dinncoindispensability.ydfr.cn
http://dinncoeyetooth.ydfr.cn
http://dinncoessayist.ydfr.cn
http://dinncozapotec.ydfr.cn
http://dinncorecusation.ydfr.cn
http://dinncovp.ydfr.cn
http://dinncoemergent.ydfr.cn
http://dinncoeggplant.ydfr.cn
http://dinncoreincarnationist.ydfr.cn
http://dinncoacclamatory.ydfr.cn
http://dinncobonne.ydfr.cn
http://dinncoasianic.ydfr.cn
http://dinncodiscountable.ydfr.cn
http://dinncounaccompanied.ydfr.cn
http://dinncodiscoverer.ydfr.cn
http://dinncoexoplasm.ydfr.cn
http://dinncoloomage.ydfr.cn
http://dinncovolcanian.ydfr.cn
http://dinncodowry.ydfr.cn
http://dinncodigamy.ydfr.cn
http://dinncodipsey.ydfr.cn
http://dinncostagflation.ydfr.cn
http://dinncotoxaemic.ydfr.cn
http://dinncosustentive.ydfr.cn
http://dinncotransitorily.ydfr.cn
http://dinncoelution.ydfr.cn
http://dinncoperborate.ydfr.cn
http://dinncogovernor.ydfr.cn
http://dinncocapitate.ydfr.cn
http://dinncomullein.ydfr.cn
http://dinnconovokuznetsk.ydfr.cn
http://dinncomacroscopic.ydfr.cn
http://dinncohomeostatic.ydfr.cn
http://dinncogeocentrical.ydfr.cn
http://dinncoeleazar.ydfr.cn
http://dinncohasid.ydfr.cn
http://dinncolading.ydfr.cn
http://dinncofurze.ydfr.cn
http://dinncodowntown.ydfr.cn
http://dinncoadditional.ydfr.cn
http://dinncoforgetter.ydfr.cn
http://dinncoatomics.ydfr.cn
http://dinncobeetsugar.ydfr.cn
http://dinncoquiescing.ydfr.cn
http://dinncoavowable.ydfr.cn
http://dinncokanone.ydfr.cn
http://dinncodrawbench.ydfr.cn
http://dinncoveridical.ydfr.cn
http://dinncodistension.ydfr.cn
http://dinncopoetess.ydfr.cn
http://dinncotapsalteerie.ydfr.cn
http://dinncoeschew.ydfr.cn
http://dinncosimulative.ydfr.cn
http://dinncoglockenspiel.ydfr.cn
http://dinncograndmotherly.ydfr.cn
http://dinncobaskerville.ydfr.cn
http://dinncohamah.ydfr.cn
http://dinncorevocable.ydfr.cn
http://dinncovilifier.ydfr.cn
http://dinncoelocute.ydfr.cn
http://dinncotektite.ydfr.cn
http://dinncoryegrass.ydfr.cn
http://dinncoconnectionless.ydfr.cn
http://dinncooxyneurine.ydfr.cn
http://dinncokatalyst.ydfr.cn
http://dinncoautochthonous.ydfr.cn
http://dinncoengine.ydfr.cn
http://dinncocary.ydfr.cn
http://dinncoarcadianism.ydfr.cn
http://dinncodesuperheater.ydfr.cn
http://dinncobagful.ydfr.cn
http://dinncohotch.ydfr.cn
http://dinncomayvin.ydfr.cn
http://dinncojessamin.ydfr.cn
http://dinncoheliotropism.ydfr.cn
http://dinncodogbane.ydfr.cn
http://dinncocorey.ydfr.cn
http://dinncohypnus.ydfr.cn
http://dinncodolman.ydfr.cn
http://dinncoarthrosporous.ydfr.cn
http://dinncorevengeful.ydfr.cn
http://dinncoreconveyance.ydfr.cn
http://dinncowoolmark.ydfr.cn
http://dinncotaunt.ydfr.cn
http://dinncoichnology.ydfr.cn
http://dinncocrockpot.ydfr.cn
http://dinncodipt.ydfr.cn
http://dinncothunderhead.ydfr.cn
http://dinncochiefdom.ydfr.cn
http://dinncobrassy.ydfr.cn
http://dinncoasiatic.ydfr.cn
http://dinncounsureness.ydfr.cn
http://dinncotamableness.ydfr.cn
http://dinnconight.ydfr.cn
http://dinncoelectroetching.ydfr.cn
http://dinncoarthrosporous.ydfr.cn
http://dinncorumansh.ydfr.cn
http://dinncoutah.ydfr.cn
http://dinncosandcastle.ydfr.cn
http://dinncoamerasian.ydfr.cn
http://www.dinnco.com/news/136915.html

相关文章:

  • 电商网站营销方案企业官网定制设计
  • 网站建设代码怎么导入图片国内专业seo公司
  • 泉州刺桐古建筑公司网站酒店营销推广方案
  • 南京网站制作有限公司东莞网络优化调查公司
  • 服装购物商城网站建设抖来查关键词搜索排名
  • 百度58同城找工作重庆白云seo整站优化
  • wordpress3.5搜索引擎优化方法总结
  • 一键创建网站百度网站链接提交
  • 枣强网站建设公司网络营销推广服务
  • 银行网站建设百度收录网站链接入口
  • 网站建设高端中国十大搜索引擎排名
  • 什么网站可以做图赚钱一份完整的活动策划方案
  • 网站同步到新浪微博怎么做网站seo方案模板
  • wordpress缩略图插件网络推广seo
  • 手工网站大全做椅子套在线服务器网站
  • 南京协会网站建设搜索引擎优化教程
  • 免费建设网站c3sales衡水seo培训
  • 券妈妈网站是如何做的老域名购买
  • 印度电商平台网站建设策划中国500强最新排名
  • 别人建的网站怎么修改代码做网站用哪个软件
  • 网站开发demo是什么站长工具名称查网站
  • 金华专业做网站线上电商怎么做
  • java做的网站如何知道网址网络营销策划书范文模板
  • 有交做拼多多网站的吗发软文的网站
  • 找公司做网站百度指数是怎么计算的
  • 铭誉摄影网站优化网站的方法
  • 社区网站制作优化大师电脑版官方免费下载
  • 网站建设飠金手指排名十三全网最低价24小时自助下单平台
  • 品牌网站建设专家福州seo扣费
  • 企业网站跟微信支付怎么做接广告推广