-
个人简介
#include <bits/stdc++.h> #define Maxn 110 using namespace std; char s1[Maxn],p1[Maxn]; int nex[Maxn]; int n,m; void Nex(char*p){ m=strlen(p+1); nex[1]=0; for(int i=2;i<=m;i++){ int j=next[j]; while(j>=1&&p[j]!=p[j+1]){ j=next[j]; } if(p[i]p[j+1]){ nex[i]=j+1; } else nex[i]=0; } } int main() { scanf("%s",s1+1);//s1是地址;s1是第一个的位置 scanf("%s",p1+1); n=strlen(s1+1); Nex(p1); int i=1;j=0; while(i<=n){ if(s1[i]p1[j+1]){ if(j+1m){printf("%d\n",i-m+1); j=nex[j]; } else{ i++; j++; } }else{ if(j0) j++; else j=nex[j]; } } for(int i=1;i<=m;i++)printf("%d ",nex[i]); printf("\n"); return 0; } //kmp
-
通过的题目
-
最近活动
This person is lazy and didn't join any contests or homework. -
最近编写的题解
This person is lazy and didn't write any solutions.
题目标签
- 入门题
- 7