数据结构实验之串一:KMP简单应用
2016-11-21 19:30
281 查看
#include<stdio.h> #include<cstring> int next[1000000]; char str[1000000],substr[1000000]; void getnext() { int i=0,j=-1; next[0]=-1; while(substr[i]!='\0') { if(j==-1||substr[i]==substr[j]) { ++i; ++j; next[i]=j; } else j=next[j]; } } int kmp() { int i=0,j=0; int len1=strlen(str),len2=strlen(substr); while(i<len1&&j<len2) { if(j==-1||str[i]==substr[j]) { ++i; ++j; } else j=next[j]; } if(j>=len2) printf("%d\n",i-len2+1); else printf("-1\n"); } int main() { while(gets(str)) { gets(substr); getnext(); kmp(); } return 0; }
相关文章推荐
- 数据结构实验之串一:KMP简单应用
- 数据结构实验之串一:KMP简单应用
- 数据结构实验之串一:KMP简单应用
- 数据结构实验之串一:KMP简单应用
- 数据结构实验之串一:KMP简单应用
- 数据结构实验之串一:KMP简单应用
- 数据结构实验之串一:KMP简单应用
- 数据结构实验之串一:KMP简单应用
- 数据结构实验之串一:KMP简单应用
- 数据结构实验之串一:KMP简单应用
- 数据结构实验之串一:KMP简单应用
- 数据结构实验之串一:KMP简单应用
- 数据结构实验之串一:KMP简单应用
- 数据结构实验之串一:KMP简单应用
- 数据结构实验之串一:KMP简单应用
- 数据结构实验之串一:KMP简单应用(java实现)
- 数据结构实验之串一:KMP简单应用
- SDUT—2772—数据结构实验之串一:KMP简单应用
- 数据结构实验之串一:KMP简单应用
- 数据结构实验之串一:KMP简单应用