博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
备战NOIP——模板复习21
阅读量:5320 次
发布时间:2019-06-14

本文共 891 字,大约阅读时间需要 2 分钟。

这里只有模板,并不作讲解,仅为路过的各位做一个参考以及用做自己复习的资料,转载注明出处。

KMP字符串匹配

/*Copyright: Copyright (c) 2018*Created on 2018-11-06*Author: 十甫*Version 1.0 *Title: KMP*Time: inf mins*/#include
#include
#include
using namespace std;const int size = 1000005;char a[size], b[size];int next[size];int main() { memset(next, 0, sizeof(next)); scanf("%s%s", a + 1, b + 1); int n = strlen(b + 1), m = strlen(a + 1); next[1] = 0; for(int i = 2, j = 0;i <= n;i++) { while(j && b[i] != b[j + 1]) { j = next[j]; } if(b[i] == b[j + 1]) { j++; } next[i] = j; } for(int i = 1, j = 0;i <= m;i++) { while(j && a[i] != b[j + 1]) { j = next[j]; } if(a[i] == b[j + 1]) { j++; } if(j == n) { printf("%d\n", i - n + 1); j = next[j]; } } for(int i = 1;i <= n;i++) { printf("%d ", next[i]); } printf("\n"); return 0;}

 

转载于:https://www.cnblogs.com/Black-S/p/9930702.html

你可能感兴趣的文章
HDU(4528),BFS,2013腾讯编程马拉松初赛第五场(3月25日)
查看>>
vim中文帮助教程
查看>>
MySQL基础3
查看>>
RxJS & Angular
查看>>
面向对象(多异常的声明与处理)
查看>>
MTK笔记
查看>>
ERROR: duplicate key value violates unique constraint "xxx"
查看>>
激活office 365 的启动文件
查看>>
无法根据中文查找
查看>>
[简讯]phpMyAdmin项目已迁移至GitHub
查看>>
转载 python多重继承C3算法
查看>>
【题解】 bzoj1597: [Usaco2008 Mar]土地购买 (动态规划+斜率优化)
查看>>
css文本溢出显示省略号
查看>>
git安装和简单配置
查看>>
面向对象:反射,双下方法
查看>>
鼠标悬停提示文本消息最简单的做法
查看>>
课后作业-阅读任务-阅读提问-2
查看>>
面向对象设计中private,public,protected的访问控制原则及静态代码块的初始化顺序...
查看>>
fat32转ntfs ,Win7系统提示对于目标文件系统文件过大解决教程
查看>>
Awesome Adb——一份超全超详细的 ADB 用法大全
查看>>