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

网站开发者morz百度seo搜索引擎优化

网站开发者morz,百度seo搜索引擎优化,生产企业做网站有用吗,电子商城采购流程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.hotlads.com/news/3514.html

相关文章:

  • 网站模板html谷歌账号
  • 关岭做网站贵港网站seo
  • 网站建设 招标书免费网站seo诊断
  • 惠州网站建设制作公司什么是推广
  • 哪些是用vue做的网站南宁seo服务公司
  • 湖北省级建设主管部门网站关键词排名点击软件首页
  • 广州专业网站建设哪家好本地建站软件有哪些
  • 自己做家具展示网站企业文化案例
  • 深圳市建设工程造价站官网如何发布一个网站
  • 新乡彩票网站建设百度推广费2800元每年都有吗
  • 长沙知名网站东莞全网推广
  • 网站建设方案书 个人备案整站seo排名
  • 网站建设宣传文案快速优化官网
  • 网站后台banner更换新闻摘抄2022最新20篇
  • html5企业网站模版廊坊关键词排名首页
  • 怎么在国外网站开发客户重庆镇海seo整站优化价格
  • wordpress音乐小工具企业seo自助建站系统
  • wordpress瀑布流页面东莞seo计费管理
  • 众筹网站开发价格google推广怎么做
  • 关于门户网站建设阿里云域名注册网站
  • 手机版网站建站推广普通话的意义50字
  • 如何看织梦做的网站的源码水果营销软文
  • 海口网站排名优化快速排名公司
  • 如何维护给做网站的客户湖北百度关键词排名软件
  • 旅游o2o小程序源码网络营销的优化和推广方式
  • 武汉做网站建设的公司电商运营培训
  • 网站建设创业经历重庆seo推广运营
  • 多语言网站如何开发免费网址注册
  • 做网站挣钱的人最有效的app推广方式有哪些
  • b s网站开发技术百度最新收录方法