poj 2406

来源:互联网 发布:oracle云计算产品 编辑:程序博客网 时间:2024/06/05 05:22

暴力可以过的。。

当然Kmp也很简单很暴力

贴代码

#include<stdio.h>  #include<string.h>  #define max 1000000  int next[max];  char str1[max];  int get_next(char *pat)  {      int j=0,k=-1;      int len=strlen(pat);      next[0]=-1;      while(j<len)      {          if(k==-1||pat[j]==pat[k])              next[++j]=++k;          else              k=next[k];      }      j=len-k;//如果最后一个位置不匹配,那么就会滚到len-k的位置,也就是最小重复字串的长度。      if(len%j==0)          return len/j;      else          return 1;  }  int main()  {      while(scanf("%s",&str1)!=EOF)      {          if(str1[0]=='.')              break;          printf("%d\n", get_next(str1));      }      return 0;  }  


0 0
原创粉丝点击