KMP超强模板贴一份
while(scanf("%s",str+)== ) {
        int n=strlen(str+);
        next[]=; int j=;
        for(int i=;i<=n;i++) {
            while(j&&str[j+]!=str[i]) j=next[j];
            if(str[i]==str[j+]) j++;
            next[i]=j;
        }
        for(int i=;i<=n;i++) printf("%d ",next[i]);
随便给出一个字符串 对应的next数组为
A B R A C D A B R A
0 0 0 1 0 1 0 2 3 4
其实就是找前缀了拉
模式匹配代码贴一份。
1 #include <cstdio>
2 #include <cstring>
3 #include <algorithm>
4 #include <cmath>
5 #include <vector>
6 #include <list>
7 #include <queue>
8 using namespace std;
9 const int MAX = 1e6+;
const int inf = 0x3f3f3f3f;
char str1[MAX],str2[MAX];
int next[MAX];
int main()
{
//freopen("in","r",stdin);
//freopen("out","w",stdout);
int cas;
scanf("%d",&cas);
while(cas--) {
scanf("%s %s",str1+,str2+);
int n=strlen(str1+);
next[]=; int j=;
for(int i=;i<=n;i++) {
if(j&&str1[i]!=str1[j+]) j=next[j];
if(str1[i]==str1[j+]) j++;
next[i]=j;
}
int ans=;
int len=strlen(str2+); j=;
for(int i=;i<=len;i++) {
while(j&&str2[i]!=str1[j+]) j=next[j];
if(str2[i]==str1[j+]) j++;
if(j==n) ans++;
}
printf("%d\n",ans);
}
return ;
}
KMP超强模板贴一份的更多相关文章
- hdu 1711 KMP算法模板题
		
题意:给你两个串,问你第二个串是从第一个串的什么位置開始全然匹配的? kmp裸题,复杂度O(n+m). 当一个字符串以0为起始下标时.next[i]能够描写叙述为"不为自身的最大首尾反复子串 ...
 - KMP(模板)
		
算法讲解: KMP算法最浅显易懂 模板来源: 从头到尾彻底理解KMP 首先:KMP的模板为: void get_next(char *a, int *nex) { nex[] = ; , j = ; ...
 - KMP算法模板&&扩展
		
很不错的学习链接:https://blog.csdn.net/v_july_v/article/details/7041827 具体思路就看上面的链接就行了,这里只放几个常用的模板 问题描述: 给出字 ...
 - POJ3461 【KMP(粗糙模板)】
		
题意: 给你两个字符串p和s,求出p在s中出现的次数. 这道题,abababa中aba出现了3次. 有其他题是求abababa,aba就是2次. 需注意. KMP 模板 //#include<b ...
 - Codeforces Round #269 (Div. 2)-D. MUH and Cube Walls,KMP裸模板拿走!
		
D. MUH and Cube Walls 说实话,这题看懂题意后秒出思路,和顺波说了一下是KMP,后来过了一会确定了思路他开始写我中途接了个电话,回来kaungbin模板一板子上去直接A了. 题意: ...
 - KMP(模板)
		
kmp算法是解决单模匹配问题的算法,难点在于求next[]数组 求next[]数组:对于模板串的所有前缀子串的最长公共前后缀的长度,就是next[]数组的值 eg:主串为cbbbaababac 子串 ...
 - Kmp 算法模板 C
		
/** * name:KMP * time:2012-11-22 * 字符串快速匹配 */ #include<stdio.h> #include<string.h> typed ...
 - KMP算法模板
		
不懂的话推荐看这篇博客,讲的很清楚 http://blog.csdn.net/v_july_v/article/details/7041827 #include<iostream> #in ...
 - KMP算法———模板
		
做出KMP字符串匹配算法心情也是好好哒,萌萌哒. 感谢黄学长,感谢栋栋! #include<cstdio>#include<string>#include<iostrea ...
 
随机推荐
- [App Store Connect帮助]四、添加 App 图标、App 预览和屏幕快照(3)上传 App 预览和屏幕快照
			
请上传至多三个 App 预览和至多十张屏幕快照.如果您的 App 在不同设备尺寸和本地化内容间都相同,仅提供所要求的最高分辨率的屏幕快照即可. 对于 iPhone,必须提供用于 5.5 英寸设备(iP ...
 - 3-3 编程练习:jQuery键盘事件案例
			
3-3 编程练习 完善下面的代码,在input框中输入内容的时候同样显示在下面的p标签中 <!DOCTYPE html> <html lang="zh-CN"&g ...
 - springboot(一) 热部署
			
代码地址:https://github.com/showkawa/springBoot_2017/tree/master/spb-demo 1.热部署的定义 所谓的热部署:比如项目的热部署,就是在应用 ...
 - Gamma阶段测试计划
			
前言 点击这一链接访问公课网(笨拙软件工程组). 一.Alpha阶段场景测试 1.1 鹿丸:无欲无求大三学生 保研无望 不在乎给分 只想选择干货多的课程 充实自己 需求和目标:了解各专业课程的授课内容 ...
 - Linux学习笔记之Linux常用命令剖析-cat/chmod/cd
			
1.cat:用于连接文件并打印到标准输出设备上.(使用权限:所有使用者) 语法格式:cat [-AbeEnstTuv] [--help] [--version] fileName 参数说明: -n 或 ...
 - qW3xT.2挖矿病毒处理方案
			
我遇到的是一款qW3xT.2的病毒,网上查了一下,好像是挖矿病毒.在此贴一下我找到的关于病毒的资料.这是我的服务器 这篇文章可谓是出自高手之笔,感觉说的很厉害,但是非专业人士的我有点看不懂,看个大概 ...
 - php 5.6 版本配置 oracle ddl
			
1. Windows版PHP内置了Oracle驱动,在ext目录下:php_oci8.dllphp_oci8_11g.dllphp_pdo_oci.dllLinux上如果自己编译的话则添加下面的con ...
 - 406 Queue Reconstruction by Height 根据身高重建队列
			
假设有打乱顺序的一群人站成一个队列. 每个人由一个整数对(h, k)表示,其中h是这个人的身高,k是排在这个人前面且身高大于或等于h的人数. 编写一个算法来重建这个队列.注意:总人数少于1100人.示 ...
 - ADB Usage Complete / ADB 用法大全
			
ADB,即 Android Debug Bridge,它是 Android 开发/测试人员不可替代的强大工具,也是 Android 设备玩家的好玩具. 持续更新中,欢迎提 PR 和 Issue 补充指 ...
 - msxml3.dll 错误 '800c0005' 系统错误: -2146697211。
			
asp网站 因为这个问题,困扰自己好多次,还重装过两次服务器系统,非常的麻烦,这次终于找到了问题所在,记录下来,方便以后查看. 服务器症状: 1.服务器上的IE浏览器不能访问外网: 2.set htt ...