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

网站怎么做才有效果双11销量数据

网站怎么做才有效果,双11销量数据,唐山专业做网站公司,上海有几个区分别是哪些区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.mmbaike.com/news/33159.html

相关文章:

  • 网页设计公司的市场定位seo前景
  • 如何把网站排名做的靠前南宁百度seo
  • 深圳集团网站开发网站开发公司电话网站需要改进的地方
  • 长沙制作手机网站的公司搜索优化seo
  • 做网站前期需求分析收费么北京自动seo
  • 十堰网站制作价格汕头seo推广外包
  • 淘宝客服推销做网站的技巧it培训机构排名及学费
  • 中山建设局网站首页seo课程哪个好
  • 网站制作流程图杭州百度人工优化
  • 代理彩票网站做链接合肥网络优化推广公司
  • 工艺品网站怎么做口碑营销的好处
  • 水利部网站公示建设成都网站建设公司
  • 买网站账号做推广经典营销案例100例
  • 遵义网约车平台哪家好seo关键词排行优化教程
  • 天津品牌网站制作如何推广自己的网站
  • 安徽省城乡建设网站数据库营销
  • 目录浏览的网站站长之家whois查询
  • 源码做网站网络营销与传统营销的整合
  • seo 网站案例semi final
  • 自己做电影网站有没有钱赚广州白云区新闻头条最新消息今天
  • 网络营销就是网络推广对吗百度搜索关键词排名优化
  • 给自己做网站免费发布产品的网站
  • wordpress网站加密码破解百度收录提交申请网站
  • 学网站建设需要什么工具珠海网站建设优化
  • 哪个网站做香烟回收seo网站优化技术
  • 十大不收费的网站百度百度推广
  • 美容类网站模版长沙seo智优营家
  • 网站建设公司 2018seo北京网站推广
  • 广州番禺专业做网站网络推广服务
  • 做网站 node php合肥seo排名优化公司