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

企业网站官网模板手机怎样建立网站

企业网站官网模板,手机怎样建立网站,小程序代理公司哪家好,云南网络公司排名目录 引言一、算法概念二、题目描述三、思路讲解三、代码实现四、测试 引言 这个KMP算法就是怎么说呢,就是不管算法竞赛还是找工作笔试面试,都是非常爱问爱考的,其实也是因为这个算法比较难懂,其实就是很难,所以非常个…

目录

  • 引言
  • 一、算法概念
  • 二、题目描述
  • 三、思路讲解
  • 三、代码实现
  • 四、测试

引言

这个KMP算法就是怎么说呢,就是不管算法竞赛还是找工作笔试面试,都是非常爱问爱考的,其实也是因为这个算法比较难懂,其实就是很难,所以非常个人的一个思维逻辑吧,反正就是用来区分人的,我会你不会,那么我就比你牛逼,所以那就开始吧。

一、算法概念

这个KMP算法就是用来匹配字符串的,在一个字符串中是否有另一个字符串的存在,如果存在返回原始字符串中的初始下标

二、题目描述

给定一个字符串 S,以及一个模式串 P,所有字符串中只包含大小写英文字母以及阿拉伯数字。模式串 P 在字符串 S 中多次作为子串出现。求出模式串 P 在字符串 S 中所有出现的位置的起始下标。输入格式
第一行输入整数 N,表示字符串 P 的长度。
第二行输入字符串 P。
第三行输入整数 M,表示字符串 S 的长度。
第四行输入字符串 S。输出格式
共一行,输出所有出现位置的起始下标(下标从 0 开始计数),整数之间用空格隔开。数据范围
1≤N≤1051≤M≤106输入样例:
3
aba
5
ababa输出样例:
0 2

三、思路讲解

这个KMP最重要的就是一个next数组,先来说一下这个是什么意思吧,next [i] 里面存的是在模板串中的以第i号下标为终点,和以第1号下标为起点的两个字符串相等的话,它们的长度最长为 j ,也就是第 i 号位置的最大的后缀和前缀相等的最大长度是j
在这里插入图片描述
然后就是匹配算法了,如下图如果说在模板串中,到第 j 号下标都匹配成功的话,原串的第 i 号下标和模板串的第 j+1号下标不匹配了,那么最暴力的做法就是将模板串往后移动一位,再重新一个一个匹配,那么KMP的想法是,我之前已经匹配了那么些串了,那么能不能用一些性质,来帮助我更加高效的匹配呢
在这里插入图片描述
然后又因为绿色的都是相等的,又因为我们有了next数组,可以知道当前的模板串往后移动的话,可以知道向后移动的最小距离是多少,又能够使得从 [1, ne[j] ]的模板串跟从 [i - j + 1, i - 1]的字串是相等的, 也就是说能使每一次匹配的原串没有浪费,都不用再重新匹配
在这里插入图片描述

三、代码实现

然后这个KMP的话,下标一般是从1开始的

#include <iostream>using namespace std;const int N = 100010, M = 1000010;int n, m;
char p[N], s[M];
int ne[N];int main()
{cin >> n >> p + 1 >> m >> s + 1;//求next数组for(int i = 2, j = 0; i <= n; ++i)  //因为ne[1]就是0可以直接从2开始{while(j && p[i] != p[j+1]) j = ne[j];if(p[i] == p[j+1]) j++;ne[i] = j;}for(int i = 1, j = 0; i <= m; ++i){while(j && s[i] != p[j+1]) j = ne[j];if(s[i] == p[j+1]) j++;if(j == n){printf("%d ", i - n);j = ne[j];}}return 0;
}

四、测试

在这里插入图片描述

http://www.yayakq.cn/news/241634/

相关文章:

  • 医疗网站建设讯息wordpress自定义格式
  • 电商网站建设实训报告心得做图表的网站知乎
  • 上海网站开发售后服务浏览器大全网址
  • 为什么要建设企业网站南山建设网站
  • 网络营销顾问是做什么的公司网站seo公司
  • 电子商务网站设计岗位主要是百度网站地图
  • 营销网站设计方案邢台企业做网站的公司
  • 做赚钱问卷调查的网站安阳网站设计哪家专业
  • wordpress做视频网站吗做神马网站快速
  • 福田设计网站软文营销的缺点
  • 优质的杭州网站优化贺州网站推广
  • 凡科网站官网广告设计公司考察报告
  • 西昌建设工程招聘信息网站南京地区网站开发
  • 江西网站开发哪家专业免费封面设计在线生成软件
  • 网站关键词几个字如何给别人做网站
  • 做企业网站需要用到的软件织梦网站建设实验报告
  • 电子邮箱网站建设游戏推广员
  • 自己做的娱乐平台网站公司变更经营地址需要哪些资料
  • 手机网站代码西安大型网站建设
  • 哪些网站做任务可以赚钱的建筑工程有哪些项目
  • 网站 参数辽宁建设工程信息网投标指定读卡器
  • 企业logo标志设计免费深圳网站的优化公司哪家好
  • 如何自己做电影网站如何建立网站平台
  • 做资源共享网站最新版的wordpress怎么添加特征图
  • 城阳网站开发公司电话wordpress登入修改
  • 帮人做网站的推广网络空间测绘
  • 电商网站搭建流程it运维工程师
  • 西安英文网站建设专门做家具网站
  • 文学写作网站安徽省建设厅网站人员管理
  • 做网站的上海公司有哪些内部网页制作