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

wordpress注册界面修改密码天津seo标准

wordpress注册界面修改密码,天津seo标准,网页制作基础教程cs3,成品网站建设哪家好KMP数组存的是什么 对于一个字符串 b,下标从1开始。 则kmp[i]表示 以i结尾的连续子串 s的前缀的最大值(等价于前缀最大结尾处) 如何求KMP 假设 i 以前的KMP都被求出来了。 j 表示上一个字符可以成功匹配的长度(等价于下标) …

KMP数组存的是什么

对于一个字符串 b,下标从1开始。

则kmp[i]表示 以i结尾的连续子串 = s的前缀的最大值(等价于前缀最大结尾处)

如何求KMP

假设 i 以前的KMP都被求出来了。

j 表示上一个字符可以成功匹配的长度(等价于下标)

如果b[j+1] != b[i]下一个位置匹配不上(即不能成为前缀)

则,让j = kmp[j] 即成为以j结尾的 连续子串 的 最长前缀 尾部的下标

退出循环后,若还能匹配上则j++(本质是,加上i的贡献。因为j = 0时可能匹配不上)

然后让kmp[i] = j即可。

运用kmp

和求kmp差不多,如果匹配不上,求让a[i]和以j结尾的连续子串的最长前缀匹配。(放宽要求)

算法正确性证明

用哲学的话来说就是,每一次失败都会让我变得更强大。

当匹配不上时,匹配串b至少会前移1位,由指针的思想。O(n)可证。

#include<bits/stdc++.h>
using namespace std;
const int N = 1e6+7;
int kmp[N];
string a,b;
int j;
int main(){cin>>a>>b;a = " "+a;b = " "+b;for(int i = 2;i < b.size();i++){while(j&&b[j+1] != b[i]){j = kmp[j];}if(b[j+1] == b[i])j++;kmp[i] = j;}j = 0;for(int i = 1;i < a.size();i++){while(j&&a[i] != b[j+1]){j = kmp[j];}if(b[j+1] == a[i])j++;if(j == b.size()-1){cout<<i-(b.size()-1)+1<<endl;j=kmp[j];}}for (int i=1;i < b.size();i++)cout<<kmp[i]<<" ";return 0;
}

 

http://www.hengruixuexiao.com/news/55606.html

相关文章:

  • 活动 网站 源码优化软件seo排名
  • 网站设计公司南京天津seo外包平台
  • 做泵阀到哪个网站好免费发广告的平台
  • 网站用户体验优化方案深圳网络推广引流
  • 导航栏宽度wordpress广东网络优化推广
  • 全国工厂的网站建设谷歌广告上海有限公司官网
  • 昆明网络公司排行榜网站外部优化的4大重点
  • 给小学生做家教的网站西安百度seo推广电话
  • shanxi建设银行网站首页软件开发app制作公司
  • 深圳市网站建设哪家好优化大师win7官方免费下载
  • 南山建设网站苏州旺道seo
  • 网站主持人制作方法app引流推广软件
  • 网站做管制户外刀具化妆品营销推广方案
  • 南京网络推广网站陕西seo关键词优化外包
  • 面签拍照 网站备案关键词优化最好的方法
  • 网站建设文字域名反查
  • 淘宝网站建设预算表seo技术培训江门
  • 销售性网站建设需求百度指数电脑端查询
  • seo整站优化网站建设2022年新闻热点摘抄
  • 吴江规划建设局网站网络运营是什么意思
  • wp大学wordpress建站流程免费关键词搜索工具
  • wordpress时间云储存百度上做优化一年多少钱
  • 专做定制型网站百度惠生活怎么优化排名
  • 网站付费推广渠道中国站长站官网
  • 做家具网站要多少钱境外电商有哪些平台
  • 佛山网站建设及优化公司十大暗网搜索引擎
  • app开发注意事项湖南靠谱seo优化报价
  • 手机站和网站有区别吗长沙seo外包优化
  • 如何拥有自己的私人网站平台b2b模式的电商平台有哪些
  • 遵义外国网站制作谷歌seo网站排名优化