BitComet 旗下网站

转到日志 acm of zju

zju1905

楼主 发表于:2008-05-27 08:11:45 [回复]

/*Power Strings
2008.5.27 07:56:38 Accepted 1905 C++ 00:00.27 1820K 天将降大任于我
采用串匹配的思想一个一个查找,只不过匹配的模版是字符串中分成的每一段字符
题目给出的a*0=""不用理会,因为单单一个空字符串是输不进去的,无论用scanf,还是cin
*/
#include<iostream>
using namespace std;
int main()
{
   char s[1000000];int i,j;
   while(scanf("%s",s)!=EOF)
   {
    if(strcmp(s,".")==0) break;
    int k=strlen(s);
    for(i=1;i<=k;i++)
    {
     if(k%i==0)
    {
          for(j=0;j<k-i;j++)
     if(s[j]!=s[j+i])  //一发现没有相等,i就向前滑动j个距离
     {
      i+=j;
      goto next;
     }
     printf("%d\n",k/i);
     break;
next: if(i==k) printf("1\n");
     }
    }
   }
   return 0;
}

心难泰,世风坏,旧时正气今何在?正义寡,人情薄,闻道虽多,茅塞不开。怪!怪!怪! 空等待,几多载,冲出重围人心快!暴雨打,狂风袭,任他折磨,此志难改。耐!耐!耐!

登录后发贴