kmp
来源:互联网 发布:淘宝链接怎么发微信 编辑:程序博客网 时间:2024/05/23 17:12
最近刚看了KMP算法,在oj上刷了几道题:
poj3461
#include<iostream>#include<string>using namespace std;void GetNext(char p[], int next[],int Plen){next[0]=-1;//下标从一开始,0无效next[1]=0;int j=0;for(int index=2;index<=Plen;index++){while(j>0 &&p[index-1]!=p[j] ) j=next[j]; if(p[index-1]==p[j])j++;next[index]=j;}}void kmp(char s[],char p[]){int Slen=0;while(s[Slen]!='\0')Slen++;int Plen=0;while( p[Plen]!= '\0' ) Plen++; int *next=new int[Plen]; GetNext(p,next,Plen);int j=0;int num=0;for(int i=0;i<Slen;i++){while(j>0&&s[i]!=p[j])j=next[j]; if(s[i]==p[j])j++;if(j==Plen){ j=next[j];num++;}}printf("%d\n",num);}int main(){int t;char p[10002];char s[1000002];scanf("%d",&t);getchar();while(t--){scanf("%s%s",p,s); kmp(s,p);}return 0;}
0 0
- KMP
- KMP
- KMP
- KMP
- KMP
- KMP
- kmp
- kmp
- KMP
- kmp
- KMP
- KMP
- KMP
- kmp
- KMP
- KMP
- kmp
- KMP
- 六.sudo和root密码
- OpenCV2计算机视觉应用编程手册(自学版)初级七
- android 5.0 Material Design酷炫风格的开源项目集合
- notifyDataSetInvalidated()和notifyDataSetChanged()有什么区别
- 找不到网卡eth1
- kmp
- 从头认识C—static和extern
- 块设备驱动的写法
- Go by Example: Slices
- easyui表单的验证
- 在app中添加新手引导视图
- TOJ 1018
- 从二维蚂蚁到N维宇宙
- android 使用HttpURLConnection方式提交get/post请求