hihoCoder#1015 KMP算法
2015-08-21 12:34
405 查看
题目:http://hihocoder.com/problemset/problem/1015
分析:裸的KMP,正好敲了一遍以前的模板,查出来点错。
代码:
分析:裸的KMP,正好敲了一遍以前的模板,查出来点错。
代码:
#include <cstdio> #include <algorithm> #include <cstring> using namespace std; const int Tmax=1000005; int T,f[Tmax],slen,alen,ans; char s[Tmax],a[Tmax]; void getfail() { int i=0,j=-1; //注意getfail的i也从0开始,因为第一次进去就加到1了 f[0]=-1; while(i<alen) { if(j==-1||a[i]==a[j]) { i++; j++; f[i]=j; } else j=f[j]; } return; } void KMP() { int i=0,j=0; ans=0;slen=strlen(s);alen=strlen(a); getfail(); while(i<slen) { if(j==-1||s[i]==a[j]) { i++; j++; } else j=f[j]; if(j==alen) ans++,j=f[j]; //这里别忘了 } return; } int main() { scanf("%d",&T); while(T--) { scanf("%s%s",a,s); KMP(); printf("%d\n",ans); } return 0; }
相关文章推荐
- org.hibernate.LazyInitializationException: failed to lazily initialize a collection..的解决方案
- WPF 自定义ScrollViewer
- 线段树(hdu1754 I hate it)
- ios原生地图开发篇
- 切换默认临时表空间
- Java性能优化(6):避免使用终结函数
- “轴承+互联网”走进天府之国
- java 内存泄漏
- 黑马程序员--Objective-C 中类的理解
- Linux下php安装Redis扩展
- CentOS6.4下一次顽固病毒的排查与处理
- [LeetCode] Rotate List
- 02.JSP的3个编译指令
- C#实现txt定位指定行完整实例
- Java数组拷贝
- 设计模式实例(Lua)笔记之六(Adapter模式)
- 在虚拟环境下安装centos6.7和centos7.1操作系统
- HDU 2141 Can you find it? (二分查找)
- Qt自己的css简称qss
- HOJ1014