• 个人简介

    #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