POJ 3461 KMP
来源:互联网 发布:java图形程序设计 编辑:程序博客网 时间:2024/06/02 02:00
//给你两个字符串p和s,求出p在s中出现的次数。////next数组的长度为小串的长度;//但是是在大串里运行。//过了我也不知道为什么。。。//找kmp原理。#include<iostream>#include<cstdio>#include<cstdlib>#include<algorithm>#include<cstring>#define maxn 5000000using namespace std;char p[maxn];char s[maxn];int next[maxn];int lenp,lens;void getnext(){ int i=0;int j=-1; next[0]=-1; while(i!=lenp) { if(s[i]==s[j] || j==-1) { i++; j++; next[i]=j; } else j=next[j]; }}int kmp(){ int i=0;int j=0;int num=0; while(i!=lens && j!=lenp) { if(s[i]==p[j] || j==-1) { i++; j++; } else j=next[j]; if(j==lenp) { num++; j=next[j]; } } return num;}int main(){ int cas; scanf("%d",&cas); for(int ca=1;ca<=cas;ca++) { scanf("%s",p); scanf("%s",s); lenp=strlen(p); lens=strlen(s); getnext(); cout<<kmp()<<endl; }}
0 0
- 【KMP模板】POJ 3461
- poj 3461 KMP
- poj 3461 Oulipo(KMP)
- kmp poj 3450 3461
- POJ 3461 KMP
- POJ 3461 kmp
- POJ 3461 Oulipo(KMP)
- poj 3461 kmp
- POJ 3461 Oulipo---kmp
- POJ 3461 Oulipo KMP
- poj 3461 Oulipo (KMP)
- POJ 3461 Oulipo ( KMP )
- POJ 3461 裸KMP
- 【POJ 3461 KMP】
- KMP poj 3461
- kmp poj 3461
- POJ 3461 Oulipo KMP
- POJ 3461 Oulipo / KMP
- POJ 2406 KMP
- cf-538B Quasi Binary【贪心】
- POJ 2823 单调队列
- POJ 3321 树状数组
- UML简单介绍(二)——UML中的图及其特征
- POJ 3461 KMP
- JAR WAR EAR包的区别
- e5-5uva12096
- Restful 406 Not Acceptable
- POJ - 3484 Showstopper 二分搜索
- POJ 3468 线段树
- 如何将文章带格式的存入数据库,并带格式的输出以及数据库经常插入空行问题
- POJ - 2828 - Buy Tickets (线段树)
- leetcode:Implement Trie (Prefix Tree)