KMP算法
来源:互联网 发布:中医人工智能系统 编辑:程序博客网 时间:2024/06/07 05:03
//KMP算法实现,参照ACM模板//hihocoder 1015#include<iostream>#include<cstdio>#include<cstring>using namespace std;const int maxn=1e6+7;char T[10000+5],S[maxn];int Next[10000+5];void preKmp(char T[],int m,int Next[]){ int i=0,j=-1; Next[0]=-1; while(i<m){ while(j!=-1&&T[i]!=T[j]) j=Next[j]; if(T[++i]==T[++j]) Next[i]=Next[j]; else Next[i]=j; }}int KMP_Count(char T[],int m,char S[],int n){ //T是模式串,S是主串 int i=0,j=0; int ans=0; preKmp(T,m,Next); while(i<n){ while(j!=-1&&S[i]!=T[j]) j=Next[j]; ++i;++j; if(j>=m){ ans++; j=Next[j]; } } return ans;}int main(){ //freopen("d:\\coding\\data.in","r",stdin); int t; cin>>t; while(t--){ cin>>T>>S; int ans=KMP_Count(T,strlen(T),S,strlen(S)); cout<<ans<<endl; } return 0;}
0 0
- KMP算法详解 【KMP】
- 【KMP】KMP算法模板
- KMP hihoCoder1015 KMP算法
- kmp算法
- KMP算法
- KMP算法
- KMP算法
- KMP算法
- KMP 算法
- kmp算法
- KMP算法
- kmp算法
- KMP算法
- KMP算法
- kmp算法
- kmp算法
- KMP算法
- KMP算法
- win10下搭建汇编开发环境
- Java程序员从笨鸟到菜鸟之(九)——数据库有关知识补充(事务、视图、索引、存储过程)
- buct oj 最大公共子序列问题
- JAVA后端学习路线
- Java程序员从笨鸟到菜鸟之(十)枚举,泛型详解
- KMP算法
- 实现安卓下拉刷新自动返回
- windows下忘记mysql超级管理员root密码的解决办法
- Android测试的坑——屏幕翻转
- Java程序员从笨鸟到菜鸟之(十一)多线程讲解
- BUCT OJ 数字三角形
- 图片加载框架Picasso
- Git 版本退回commit
- Java程序员从笨鸟到菜鸟之(十二)java异常处理机制