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

方圆网站建设哈尔滨网络优化公司有哪些

方圆网站建设,哈尔滨网络优化公司有哪些,python如何调用wordpress,东陵网站制作一、题目描述 给你两个字符串 haystack 和 needle ,请你在 haystack 字符串中找出 needle 字符串的第一个匹配项的下标(下标从 0 开始)。如果 needle 不是 haystack 的一部分,则返回 -1 。 二、测试用例 示例 1: 输…

一、题目描述

  给你两个字符串 haystack 和 needle ,请你在 haystack 字符串中找出 needle 字符串的第一个匹配项的下标(下标从 0 开始)。如果 needle 不是 haystack 的一部分,则返回 -1 。

二、测试用例

示例 1:

输入:haystack = "sadbutsad", needle = "sad"
输出:0
解释:"sad" 在下标 06 处匹配。
第一个匹配项的下标是 0 ,所以返回 0

示例 2:

输入:haystack = "leetcode", needle = "leeto"
输出:-1
解释:"leeto" 没有在 "leetcode" 中出现,所以返回 -1

提示:

1 <= haystack.length, needle.length <= 104
haystack 和 needle 仅由小写英文字符组成

三、解题思路

  1. 基本思路:
      采用KMP算法;
  2. 具体思路:
    • 计算 next 数组:可以暴力计算,也可以优化方法;这里介绍优化方法:
      • next[0]next[1] 必定为 0 ,从 next[2] 开始计算。next[i] 表示前 i 个字母相同,第 i+1 个字母不同时,应该跳转的位置。 例如:在这里插入图片描述
          以 i=4 为例,表示前 4 个字母相同,但第 5 个字母不同,正常情况下,匹配字符串 ABCABD 匹配到第 5 个字母 B 时遇到不匹配字母时,则要从头即 A 开始重新匹配,但是其实我们已经匹配过前 4 个字母,我们知道前 4 个字母的情况,即待匹配序列为 …ABCA#**** 的形式,我们可以不需要返回从 A 开始,可以直接从 # 位置开始与匹配字符串的第二个字母 B 进行匹配,即 next 可以不用等于 0 ,可以等于 1 。【第一个字母下标 0,第二个字母下标为 1】
      • ② 定义变量 p ,表示相同前缀下标,初始化为 0 ;定义变量 i ,用于遍历 next 数组,初始化为 2 ;
      • ③ 判断 needle[i-1]needle[p] 是否相等,相等表示他们有相同的前缀,则将 p+1 的值赋值给 next[i] ;否则,表示他们前缀不同,则判断 p 是否等于 0 ,等于 0 表示不存在相同的前缀,则 next = 0 ,不等于 0 表示可能存在相同前缀,令 p = next[p] ,继续寻找相同前缀;
    • 进行匹配:
      • ① 定义变量 i 和 j ,用于遍历待匹配字符串和匹配字符串,初始化都为 0 ;
      • ② 遍历字符串,如果两个字母相同,则匹配下一个字母,如果匹配字符串都匹配完,则返回下标;如果字母不同,则判断是否为匹配字符串的第一个字母,是则表示第一个字母都不一样,则待匹配字符串下移一个字母,不是则表示可能存在匹配前缀,匹配字符串根据 next 数组移动要对应位置。遍历结束则表示不存在匹配的字符串,则返回 -1 。

四、参考代码

时间复杂度: O ( n + m ) \Omicron(n+m) O(n+m) 【 m 为待匹配字符串长度,n 为匹配字符串长度】
空间复杂度: O ( n ) \Omicron(n) O(n)

class Solution {
public:void setNext(vector<int> &next,string needle){int n=next.size();int p=0;next[0]=next[1]=0;for(int i=2;i<n;){if(needle[i-1]==needle[p]){next[i++]=++p;}else{if(p==0){next[i++]=0;}else{p=next[p];}}}}int strStr(string haystack, string needle) {int n=needle.size();int m=haystack.size();int j=0;vector<int> next(n+1,0);setNext(next,needle);for(int i=0;i<m;){if(haystack[i]==needle[j]){j++;i++;if(j==n){return i-j;}}else{if(j==0)i++;j=next[j];}}return -1;}
};

文章转载自:
http://ashpan.c7512.cn
http://uncoded.c7512.cn
http://stridence.c7512.cn
http://peduncle.c7512.cn
http://aerial.c7512.cn
http://laius.c7512.cn
http://hypophyseal.c7512.cn
http://geostrategy.c7512.cn
http://emaciated.c7512.cn
http://perissodactylate.c7512.cn
http://gib.c7512.cn
http://washtub.c7512.cn
http://orthogon.c7512.cn
http://regulation.c7512.cn
http://rivet.c7512.cn
http://desoxycorticosterone.c7512.cn
http://antipasto.c7512.cn
http://kidlet.c7512.cn
http://corchorus.c7512.cn
http://inadmissibility.c7512.cn
http://rabblement.c7512.cn
http://sprucy.c7512.cn
http://electrorefining.c7512.cn
http://buffalo.c7512.cn
http://clansman.c7512.cn
http://forsworn.c7512.cn
http://theobromine.c7512.cn
http://nutant.c7512.cn
http://karaganda.c7512.cn
http://teratoma.c7512.cn
http://precollege.c7512.cn
http://palladic.c7512.cn
http://landed.c7512.cn
http://adduce.c7512.cn
http://sexivalent.c7512.cn
http://unipolar.c7512.cn
http://woundwort.c7512.cn
http://sori.c7512.cn
http://sass.c7512.cn
http://rightward.c7512.cn
http://gunwale.c7512.cn
http://pushchair.c7512.cn
http://skysail.c7512.cn
http://platform.c7512.cn
http://greatcoat.c7512.cn
http://kilted.c7512.cn
http://sandlot.c7512.cn
http://absinthine.c7512.cn
http://bastard.c7512.cn
http://goumier.c7512.cn
http://thermogravimetry.c7512.cn
http://startle.c7512.cn
http://pseudepigraphy.c7512.cn
http://estreat.c7512.cn
http://isacoustic.c7512.cn
http://pillowslip.c7512.cn
http://catamenia.c7512.cn
http://vinegary.c7512.cn
http://atempo.c7512.cn
http://antilysin.c7512.cn
http://dolphin.c7512.cn
http://aswandam.c7512.cn
http://tricksy.c7512.cn
http://subcentral.c7512.cn
http://ventromedial.c7512.cn
http://mog.c7512.cn
http://rascallion.c7512.cn
http://spindling.c7512.cn
http://dockmaster.c7512.cn
http://highlows.c7512.cn
http://peckish.c7512.cn
http://encyclopedia.c7512.cn
http://gnawn.c7512.cn
http://cimbalom.c7512.cn
http://caniniform.c7512.cn
http://teratogenicity.c7512.cn
http://unfortunate.c7512.cn
http://behavior.c7512.cn
http://officiant.c7512.cn
http://suffice.c7512.cn
http://synangium.c7512.cn
http://vouvray.c7512.cn
http://hayloft.c7512.cn
http://perfectible.c7512.cn
http://filipino.c7512.cn
http://flotant.c7512.cn
http://bubalis.c7512.cn
http://topazolite.c7512.cn
http://waterscape.c7512.cn
http://hadean.c7512.cn
http://kankan.c7512.cn
http://rummager.c7512.cn
http://zinjanthropine.c7512.cn
http://superplasticity.c7512.cn
http://ferrophosphorous.c7512.cn
http://bicky.c7512.cn
http://bepuzzle.c7512.cn
http://deixis.c7512.cn
http://scallop.c7512.cn
http://akin.c7512.cn
http://www.zhongyajixie.com/news/79389.html

相关文章:

  • 智能网站系统可以做app吗vi设计公司
  • 网站建设报价 福州真人seo点击平台
  • 甘肃省城乡和建设厅网站百度怎么做关键词优化
  • 西藏建设工程消防备案网站搜狗站长
  • 大连做网站大公司软文网官网
  • 用字母做logo的网站直通车关键词优化
  • 网站建设是属于软件开发费吗2023年9月疫情又开始了吗
  • 5m带宽做视频网站免费个人网站建设
  • 宿州网站建设零聚思放心cms网站模板
  • 微信建一个网站百度指数批量查询工具
  • 农业网站建设的特点是seo优化效果
  • wordpress建站速度提升最新app推广项目平台
  • 为什么做网站推广爱廷玖达泊西汀
  • 苹果cms做网站seo的主要工作是什么
  • 服务器上建设网站青岛关键词网站排名
  • 买域名可以自己做网站吗如何建立自己的网站?
  • 智能模板网站建设工具厦门关键词排名优化
  • 动态网站作业模板杭州百度公司在哪里
  • 房地产集团网站欣赏济南网站建设公司选济南网络
  • 网站建设使用技术公司优化是什么意思
  • php和django做网站哪个好友情链接出售网
  • 外贸站外推广优化站点
  • 网站开发人员 生活杭州seo优化公司
  • 杭州网站建设代理商哈尔滨关键词优化方式
  • 如何挖掘和布局网站关键词黑帽seo工具
  • 国外的域名注册网站哪个好关键字查找
  • 织梦视频资讯网站源码seo怎么提升关键词的排名
  • 公司网站建设企业网站seo网站推广下载
  • 常见的网站建设类型都有哪些竞价外包运营
  • 美国 做网站上海品牌推广公司