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

关于集团网站建设的请示推广收款码平台有哪些

关于集团网站建设的请示,推广收款码平台有哪些,网站建设管理理论,专注网站建设与优化【字符串匹配】【KMP算法】Leetcode 28 找出字符串中第一个匹配项的下标 #xff08;1#xff09;前缀和后缀#xff08;2#xff09;前缀表#xff08;最长相同的前缀和后缀的长度#xff09;#xff08;3#xff09;匹配过程示意#xff08;4#xff09;next数组的… 【字符串匹配】【KMP算法】Leetcode 28 找出字符串中第一个匹配项的下标 1前缀和后缀2前缀表最长相同的前缀和后缀的长度3匹配过程示意4next数组的实现方法1.初始化2.处理前后缀不相等的情况 :3.处理前后缀相同的情况4.求next数组的程序 题目做法解法1 KMP算法解法2 暴力做法 ---------------题目链接------------------- 任务要在文本串aabaabaafa 中查找是否出现过一个模式串aabaaf 1前缀和后缀 前缀是指不包含最后一个字符的所有以第一个字符开头的连续子串。 比如aabaaf的前缀包括a,aa,aab,aaba,aabaa 后缀是指不包含第一个字符的所有以最后一个字符结尾的连续子串。 比如aabaaf的后缀包括f,af,aaf,baaf,abaaf 2前缀表最长相同的前缀和后缀的长度 前缀表最长相同的前缀和后缀的长度 前缀表最长相同的前缀和后缀的长度 前缀表最长相同的前缀和后缀的长度 作用记录下标i之前包括i的字符串中有多大长度的相同前缀后缀 模式串aabaaf的前缀表 字符串最长相等前后缀a0aa1aab0aaba1aabaa2aabaaf0 前缀表的任务当前位置匹配失败找到之前已经匹配上的位置再重新匹配。 也意味着在某个字符失配时前缀表会告诉你下一步匹配中模式串应该跳到哪个位置。 文本串aabaabaaf模式串下标012345模式串aabaaf–前缀表–010120 当匹配到 b 的时候模式串为 f 匹配失败。 于是寻找 f 前面的字符串 aabaa 他的最长相等前缀和后缀字符串是 aa 因为找到了最长相等的前缀和后缀匹配失败的位置是后缀子串的后面那么我们找到与其相同的前缀的后面即前缀表中发现冲突位置的前面的字符串——aabaa对应的前缀表为【2】因此找到模式串中下标索引为【2】的位置 —— b 的位置开始重新匹配就可以了。 文本串aabaabaaf模式串aabaaf 3匹配过程示意 4next数组的实现方法 next数组详解视频 代码随想录文字版 代码随想录视频版本 1.初始化 【i后缀的末尾】初始化为1 【j前缀的末尾】初始化为0 next [ 0 ] 0 j也代表了i包括i之前的字符串的最长相等前后缀长度 2.处理前后缀不相等的情况 : j连续回退 ———— jnext [ j-1 ], 在j大于0的情况下3.处理前后缀相同的情况 j → 更新next数组next [ i ] j → i4.求next数组的程序 1.初始化 【i后缀的末尾】初始化为1 【j前缀的末尾也代表i包括i前字符的最长相等前后缀长度】初始化为0 next[0] 0 2.处理前后缀不相等的情况 3.处理前后缀相同的情况//求前缀表nextprivate void getNext(int[] next, String s){int j 0; // 初始化j为前缀末尾0,i为后缀的末尾next[0] 0;for(int i 1; i s.length(); i){ while(j 0 s.charAt(j) ! s.charAt(i)){ j next[j-1];}if(s.charAt(j) s.charAt(i)){ // 如果相同前缀末尾jj;}next[i] j; // 将前缀的长度给next[i]}} 题目做法 解法1 KMP算法 时间复杂度O(N) 空间复杂度O(N) class Solution {public int strStr(String haystack, String needle) {if(haystack.length() needle.length()) return -1;int[] next new int[needle.length()];getNext(next, needle);int j 0;for(int i 0; i haystack.length(); i){while(j0 needle.charAt(j) ! haystack.charAt(i)){ j next[j-1];}if(needle.charAt(j) haystack.charAt(i)){j;}if(j needle.length()) {return i-needle.length()1;}}return -1;}//求前缀表nextprivate void getNext(int[] next, String s){int j 0; // 初始化j为前缀末尾0,i为后缀的末尾next[0] 0;for(int i 1; i s.length(); i){ while(j 0 s.charAt(j) ! s.charAt(i)){ j next[j-1];}if(s.charAt(j) s.charAt(i)){ // 如果相同前缀末尾jj;}next[i] j; // 将前缀的长度给next[i]}} }解法2 暴力做法 从大字符串的第一个元素开始比对小字符串一旦出现不一样的就从大字符串的下一个元素开始进行比对 如果小字符串遍历结束时都一样则return对应的下标 如果大字符串遍历完小字符串还没遍历完return-1 遍历完大字符串前都找不到的话就return -1 时间复杂度O(N^2) 空间复杂度O(N) class Solution {public int strStr(String haystack, String needle) {// 暴力做法char[] ch1 haystack.toCharArray();char[] ch2 needle.toCharArray();int result -1;for(int i 0; i ch1.length; i){ // haystack的遍历if(ch1[i] ch2[0]){int outside i;int inside 0;while(ch1[outside] ch2[inside]){outside;inside;if(inside ch2.length){return outside-ch2.length;}else if(outside ch1.length){return result;}}}}return result;} }
http://wiki.neutronadmin.com/news/438608/

相关文章:

  • 高端开发网站哪家专业全国优秀作文选官网
  • 建设一个怎样的自己的网站首页wordpress如何设置分类目录
  • 义乌网站建设电话可视化编辑器wordpress
  • 网站建设 业务板块名称建设银行个人网站
  • 虹口网站建设公司做网站挣钱来个好心人指点一下呗
  • 重庆点优建设网站公司设计公司官网需要发什么
  • 西安做网站xamokj娱乐网站建设公司
  • 网站建设属于淘宝哪种类目360网站卖东西怎么做
  • 加强网站备案管理wordpress插件怎么安
  • 佛山网站建设怎样做天天广告联盟官网
  • 免费字体设计网站电子商务网站建设软件
  • 东莞朝阳企讯网做的网站重庆网红景点有哪些
  • 信息管理系统网站模板电商app开发哪家公司最好
  • 小网站要备案吗摄影设计说明300字
  • 天津做网站优化的公司不更新网站如何做排名
  • 如何给一个网站做推广平面设计网格
  • 网站运营目的网站建设优化培训
  • 信管女生做网站开发色调网站
  • 无锡市住房与城乡建设局网站dw做网站的导航栏怎么做
  • 杭州网站建设杭州沃迩夫郑州网站建设最便宜
  • 论坛网站开发成本做脚本网站
  • 国外可以做网站盈利模式有哪些aspcms 网站标签调用
  • 企业微网站与手机微信号出入长沙今天最新通知
  • 网站修改flashfxp上传多久生效wordpress+迁移后空白
  • 网站建设硬件设备企业网站怎么做seo
  • 国外自适应网站模版江西响应式网站建设哪家好
  • 找人做网站要拿到源代码吗wordpress 本地搭建
  • 网站做拓扑图编辑园岭中小网站建设
  • 医院诊所响应式网站模板建设银行信用卡网站是哪个
  • seo整站优化托管怎么看国外设计网站