题目描述

如题,给出两个字符串s1和s2,其中s2为s1的子串,求出s2在s1中所有出现的位置。

为了减少骗分的情况,接下来还要输出子串的前缀数组next。

(如果你不知道这是什么意思也不要问,去百度搜[kmp算法]学习一下就知道了。)

输入输出格式

输入格式:

第一行为一个字符串,即为s1

第二行为一个字符串,即为s2

输出格式:

若干行,每行包含一个整数,表示s2在s1中出现的位置

接下来1行,包括length(s2)个整数,表示前缀数组next[i]的值。

输入输出样例

输入样例#1: 复制

ABABABC
ABA

输出样例#1: 复制

1
3
0 0 1

说明

时空限制:1000ms,128M

数据规模:

设s1长度为N,s2长度为M

对于30%的数据:N<=15,M<=5

对于70%的数据:N<=10000,M<=100

对于100%的数据:N<=1000000,M<=1000000

#include<bits/stdc++.h>
using namespace std;
int next[1000000];
void getnext(char p[]){int len=strlen(p);next[0]=-1;int k=-1;int j=0;while(j<len-1){if(k==-1||p[j]==p[k]){//如果为初始值,k在前  j在后  jk是相等的  j++;k++;next[j]=k; }else{k=next[k];}}//字符串算法,好像就是向前匹配
}
void getnextval(char p[]){//求next代码优化int len=strlen(p); next[0]=-1;int k=-1,j=0;while(j<len-1){if(k==-1||p[k]==p[j]){k++;j++;if(p[j]!=p[k])next[j]=k;else next[j]=next[k];}else{k=next[k];}}
}//优化后的kmp数组 void kmpsearch(char s[],char p[]){  int lens=strlen(s),lenp=strlen(p),i=0,j=0;while(i<lens){if(j==-1||s[i]==p[j]){i++;j++;if(j==lenp){printf("%d\n",i-j+1);i=i-j+1;j=0;}//每当找到一个起点 }else{j=next[j];}}
}
int main(){char s[10000],p[10000];scanf("%s",s);scanf("%s",p);getnextval(p);kmpsearch(s,p);
}

模板四十天之一 KMP相关推荐

  1. 【Visual C++】游戏开发笔记四十六 浅墨DirectX教程十四 模板测试与镜面特效专场

    本系列文章由zhmxy555(毛星云)编写,转载请注明出处.   文章链接: http://blog.csdn.net/zhmxy555/article/details/8632184 作者:毛星云( ...

  2. 苹果cmsv10首涂模板第十四套酷黑渐变特色自适应高端模板

    一款酷黑模板整个布局以黑色为主用户在下滑或是上调页面时具有颜色由深变浅或浅变深的颜色渐变功能!完美自适应所有市面上的电子视频设备.还有触动封面直接播放视频内容的独特设计为你的广告收益大大提供了更直接的 ...

  3. 计算机考研最后四十天,2021考研最后四十天冲刺复习攻略

    2021考研最后这一冲刺阶段,不仅要对以往学过的知识做强化梳理和查缺补漏,还要集中精力做好英语作文.政治等部分的突击学习.因此,在这个紧要的关头,千万不要吝啬你的付出,一定要把每一项复习任务都要落到实 ...

  4. [系统安全] 四十四.APT系列(9)Metasploit技术之基础用法万字详解及防御机理

    您可能之前看到过我写的类似文章,为什么还要重复撰写呢?只是想更好地帮助初学者了解病毒逆向分析和系统安全,更加成体系且不破坏之前的系列.因此,我重新开设了这个专栏,准备系统整理和深入学习系统安全.逆向分 ...

  5. 罗永浩:我今年四十八岁,还可以承受无数次的失败;iOS14 或将推出系统级「小程序」功能;​ PyCharm新版发布| 极客头条...

    整理 | 屠敏 头图 | CSDN 下载自视觉中国 快来收听极客头条音频版吧,智能播报由标贝科技提供技术支持. 「极客头条」-- 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦, ...

  6. 【Visual C++】游戏开发四十八 浅墨DirectX教程十六 三维地形系统的实现

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 本系列文 ...

  7. 字符和文档识别的四十年研究

    字符和文档识别的四十年研究 ---工业前景的瞻望 文档来源:http://www.sciencedirect.com/science/article/pii/S0031320308000964 文章历 ...

  8. 基因测序仪四十年:回顾、致敬与展望

    基因测序仪四十年:回顾.致敬与展望 (2018-09-08 10:53:44) 转载▼ 华大基因(BGI)于1999年9月9日因成承担1%人类基因组计划而成立,即将迎来19岁生日. 当初,促使其成立的 ...

  9. android 仿qq相册功能,Android第四十九期 - 仿QQ空间上传功能+本地数据库存储

    最近在看撸撸代码,他自己创了一种,网上有三种,分别是OpenDroid,greenDao,sugar,Sqlite原生写法,感觉都差不多,个人使用最优的是greenDao,下面开始介绍:    1.O ...

最新文章

  1. 【前端统计图】echarts实现属性修改
  2. WPF整理-使用ResourceDictionary管理Logical Resources
  3. ホワイトボックステストとブラックボックステストの区別(白盒测试与黑盒测试的区别)...
  4. kubernetes-dashboard部署
  5. 摄影基础知识——曝光和测光
  6. 教你自己如何在Windows10系统创建虚拟专用网络
  7. 【liunxptp协议栈详解第一部分】
  8. 听dalao讲课 7.26
  9. 各大互联网软件公司校招时间表大盘点
  10. 黑马python2019吾爱破解_2019KCTF 南充茶坊(python逆向)
  11. 【2022软件创新实验室暑假集训】Java环境安装与基础介绍
  12. Autodesk Genuine Service2020删除
  13. .java.smap_Java Get.getAttributesMap方法代码示例
  14. 实现百度图片搜索页面
  15. 如何查看log4j日志
  16. “声音”背后的原理(1):波(横波、纵波、声波)、声音的采集、声音的储存
  17. IIS7之下部署FluorineFx,找不到Fluorine.aspx文件的解决方案
  18. 2019年全国5A级旅游景区点位分布数据
  19. 2023年PMP考试难不难?
  20. 运动规划问答 -路径规划

热门文章

  1. 虾皮跨境电商要怎么做shopee选品才能一本万利?
  2. 成都东软学院2016年ACM冬季校赛正式赛 - 题解
  3. 记录自己的第一次php实习生面试经验
  4. 云服务器租赁维护合同,云服务器 租赁 服务合同
  5. 解决typescript 提示 Object is possibly ‘null‘
  6. 论文笔记:Bootstrap Your Own Latent A New Approach to Self-Supervised Learning
  7. 谈一谈第一代5G手机的射频设计
  8. 系统安全 --------- 账号安全管理
  9. 阿里云虚拟云主机使用PHPMailer无法发送邮件的问题
  10. Telegram-This phone number is banned.手机号被禁止解决方法