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

领优惠卷的网站怎么做怎么搜索网站

领优惠卷的网站怎么做,怎么搜索网站,广州正佳广场,广州海珠做网站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.tj-hxxt.cn/news/1189.html

相关文章:

  • 网页设计网站思路网络营销师证
  • 随州网站制作google下载app
  • 深圳企业医疗网站建设市场推广策略
  • 用网上的文章做网站行吗徐州百度推广公司
  • 网页建设多少钱合肥seo代理商
  • 微信页面转wordpress上海专业的seo推广咨询电话
  • 哪个网站可以做视频播放器seo关键词推广渠道
  • 如何在一个空间做2个网站免费推广产品平台有哪些
  • ps网页版在线使用最全版seo公司的选上海百首网络
  • 政府网站建设的现状凌哥seo
  • 电脑城网站开发需求分析广州疫情防控措施
  • 做网站要注意哪一点app开发制作
  • 一个女的让我和她做优惠网站网络营销策略的定义
  • 推荐西安优秀的响应式网站建设公司百度公司注册地址在哪里
  • 移动网站seo站内推广方案
  • 上海网站建设 微信开发公司哪家好开发一个平台需要多少钱
  • 广州做网站优化哪家好sem是什么职业
  • 外贸网站外链平台百度问答
  • 中山网站建设方案外包百度校招
  • 办事处网站建设资源猫
  • 招聘网站可做哪些推广方案百度竞价优化软件
  • 365采购网seo网站搭建是什么
  • java 网站开发源码亚马逊关键词优化怎么做
  • 包小盒设计网站申请一个网站需要多少钱
  • 做网站建设怎么介绍自己最全bt搜索引擎入口
  • 网站开发付费视频才能观看自动点击器app
  • 网站 怎么做百度才能搜索出来今日时政新闻热点
  • wordpress建站视频百度推广销售员好做吗
  • 网页设计制作手机网站cnn头条新闻
  • 专业制作公司网站公司关键词快速优化排名软件