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

网站页面优化如何建开发手机网站

网站页面优化,如何建开发手机网站,杰森影像网站建设,wordpress主题LinkedinKMP目录 KMP 基础知识构建前缀表使用前缀表减少运算步骤 28. 找出字符串中第一个匹配项的下标459. 重复的子字符串 KMP 基础知识 奇乐编程学院 https://www.bilibili.com/video/BV1AY4y157yL/?spm_id_from333.1391.0.0 代码随想录 https://www.bilibili.com/video/BV1PD4y1o7…

KMP目录

  • KMP 基础知识
    • 构建前缀表
    • 使用前缀表减少运算步骤
  • 28. 找出字符串中第一个匹配项的下标
  • 459. 重复的子字符串

KMP 基础知识

奇乐编程学院
https://www.bilibili.com/video/BV1AY4y157yL/?spm_id_from=333.1391.0.0
代码随想录
https://www.bilibili.com/video/BV1PD4y1o7nd?spm_id_from=333.788.videopod.sections&vd_source=9e875f3cfd35b93ea904ffd5c3c157a5
一个人能走的多远不在于他在顺境时能走的多快,而在于他在逆境时多久能找到曾经的自己。
————KMP

(复制的B站评论)

概述:使用前缀表来代替重复比较。
kmp算法关键在于:在当前对文本串和模式串检索的过程中,若出现了不匹配,如何充分利用已经匹配的部分。
主要步骤:

  1. 构建前缀表
  2. 遍历字符串,利用前缀表进行更新

构建前缀表

前缀不包含尾字母,一定包含首字母的所有子串。
后缀不包含首字母,一定包含尾字母的所有字串。
在构建前缀表的时候就使用了KMP思想。
在这里插入图片描述
在这里插入图片描述

使用前缀表减少运算步骤

前面i,j都是在同一个字符串下。求重复子串的时候,
KMP算法遇到不匹配的地方,可以直接跳到上一次匹配的地方继续匹配。
在这里插入图片描述

在这里插入图片描述

28. 找出字符串中第一个匹配项的下标

就是存在问题的基础上,如果遍历过程中遇到j==needle.size();直接返回return i-needle.size()+1;
下面注释了一个双指针法,两个指针遍历两个字符串,在没接触KMP时候写的。

class Solution {
public:void build_next(vector<int>& next, string s){next[0] = 0;int j = 0;//前缀的末尾for(int i = 1; i < s.size(); i ++){ //i后缀的末尾,就是表示这个子串的结束while(j>0 && s[i]!=s[j]){j = next[j-1];}if(s[i] == s[j]){j++;}next[i] = j;}}int strStr(string haystack, string needle) {if (needle.empty()) return 0;vector<int> next(needle.size());build_next(next, needle);int j = 0;for(int i = 0; i < haystack.size(); i++){while(j>0 && haystack[i]!=needle[j]){j = next[j-1];}if(haystack[i] == needle[j]){j++;}if(j == needle.size()) return i-needle.size()+1;}return -1;}
};// for(int i=0; i < haystack.size(); i++){//     int left = 0;//     if(needle[left]==haystack[i]){//         int right = i+1;//         left++;//         while(left<needle.size()){//             if(needle[left]!=haystack[right]) break;//             left++;//             right++;//         }//         if(left == needle.size()) return i;//     }// }// return -1;

459. 重复的子字符串

在这里插入图片描述

在这里插入图片描述

class Solution {
public:void build_next(vector<int>& next, string s){int j = 0;next[0] = 0;//初始化for(int i = 1; i < s.size(); i++){while(s[i]!=s[j] && j>0){j = next[j-1];//跳跃到下一个要比较的地方}if(s[i]==s[j]) next[i] = ++j;}}bool repeatedSubstringPattern(string s) {int n = s.size();vector<int> next(n);build_next(next, s);int len = next[n-1];return len > 0 && n % (n - len) == 0;}
};
http://www.dtcms.com/wzjs/597474.html

相关文章:

  • 如何免费建购物网站wordpress 新建数据表
  • 网页设计相关网站做食材的网站
  • 网站开发组件拖拽福建住房和建设网站
  • 青岛网站建设推广锡山区企业网络推广
  • 韶关网站建设制作优化关键词排名seo
  • 滨河网站建设如何建设网站
  • 如何做网站的推广教程小程序店铺怎么弄
  • 免费制作永久企业网站克拉玛依油田公司主页
  • 西安大网站建设公司排名网站建设设计咨询
  • 江苏省建设厅的官方网站怎么进入追信魔盒网站开发软件
  • 网站建设方案书ppt91色做爰免费网站
  • 蛋糕店网站建设做好网站建设对企业有什么作用
  • 科技 杭州 网站建设对门户网站建设情况的报告
  • 浅谈旅游网站的规划与建设十大办公室设计公司
  • 大航母网站建设案例网络营销课程总结与心得体会
  • 上海 网站备案拍照网站建设开发模式
  • 西南大学校园网站建设往年考试卷网站项目需求说明书
  • 怎么编辑自己的网站吉林seo快速排名
  • 泰安网站建设方案网站用户建设的设计与实现
  • 苏州前几天网站建设php网站开发 招聘
  • 培训行业网站建设的重要性做网站需要招聘内容
  • 企业每年向工商网站做申报网站微信开发
  • 赣州人才网站wordpress运行库
  • 做哪个网站好苏州制作网页服务
  • 西安网站开发建设深圳网站建设公司招聘
  • 网站的切图是谁来做卖货到海外的免费平台
  • 网站开发薪资seo接单
  • 哪些购物网站用php做的工商注册登记流程
  • 怎么对网站标注做记号dw个人网页制作步骤
  • 如何知道网站是否备案过自己做网站需要买什么