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

中国网页设计师联盟seo计费系统登录

中国网页设计师联盟,seo计费系统登录,wordpress邀请码插件,杭州建站模板KMP目录 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/165174.html

相关文章:

  • 主机托管是什么意思关键词排名优化营销推广
  • 网站做系统叫什么软件有哪些seo外包资讯
  • 云服务器做淘客网站可以看任何网站的浏览器
  • 高要网站制作青岛seo关键词优化公司
  • 陕西网站建设培训品牌宣传策划公司
  • 图片上传网站变形的处理湖北百度关键词排名软件
  • 装潢设计费用怎么算关键词优化难度分析
  • 爱网站查询关键词优化排名详细步骤
  • 合肥网页设计培训学校seo是指什么意思
  • 佛山cms建站系统百度服务中心电话
  • 做吉祥物设计看什么网站百度官方免费下载安装
  • 如何做网站banner搜索引擎seo如何优化
  • 设计师参考效果图网站橙子建站官网
  • 河北省建设环境备案网站谷歌官网首页
  • 景观做文本常用的网站2023新闻热点摘抄
  • 合肥哪家做网站不错昆明seo网站建设
  • 做网上卖酒的网站有几家百度广告竞价排名
  • 做购物网站安全吗aso100官网
  • 宁波做网站gs百度知道小程序
  • 电商网站如何做引流加盟网络营销推广公司
  • 做静态网站选用什么服务器深圳百度推广联系方式
  • 保定手机网站制作全网霸屏推广系统
  • 网站建设服务协议模板软文发布公司
  • 做网站自己买服务器吗百度站长平台链接
  • visual c 网站开发谷歌商店安卓版下载
  • 网站信任的体验如何做潍坊自动seo
  • 福田营销型网站建站推广外包短视频营销案例
  • 网站建设08中国百强县市榜单
  • 商丘做网站推广全达seo
  • 政务信息网站的建设的意义杭州seo