UVa 455 - Periodic Strings

在一个周期字符串中找出最小周期

最注意一点,周期一定要是被串长度除尽的,可能在没除尽的情况下也全部匹配上...

 1 #include <iostream>
 2 #include <cstring>
 3 using namespace std;
 4 int t,len,cnt;
 5 char s[100];
 6 bool flag;
 7 void fuc()
 8 {
 9     len=strlen(s);
10     for(int i=0;i<len;i++)
11     if(len%(i+1)==0)//!!
12     {
13         flag=1;
14         for(int j=0,k=0;j<len;j++)
15         {
16             if(s[j]!=s[k])
17             {
18                 flag=0; break;
19             }
20             if(k==i) k=0;
21             else k++;
22         }
23         if(flag) 
24         {
25             cnt=i+1; return;
26         }
27     }
28 }
29 int main()
30 {
31     while(cin>>t) 
32     while(t--)
33     {
34         cin>>s;
35         fuc();
36         cout<<cnt<<endl;
37         if(t) cout<<endl;
38     }
39 } 

 

posted @ 2016-03-14 16:58  nicetomeetu  阅读(196)  评论(0编辑  收藏  举报