UVA-455 Periodic Strings

 1 #include <iostream>
 2 #include <stdlib.h>
 3 #include <string>
 4 #include <vector>
 5 #include <algorithm>
 6 #include <string.h>
 7 #include <stack>
 8 #include <unordered_map>
 9 #include <math.h>
10 #include <iomanip>
11 
12 using namespace std;
13 
14 
15 int main()
16 {
17     int T;
18     cin >> T;
19     while(T--)
20     {
21         string input;
22         cin >> input;
23         if(input.size()==1)
24         {
25             cout << 1 << endl;
26             if(T>0)
27                 cout << endl;
28             continue;
29         }
30         int flag = 1;
31         for(int gap = 1; gap < input.size(); gap ++)
32         {
33             if(input.size()%gap)
34                 continue;
35 
36             flag = 1;
37             int cnt;
38             for(int i = 0; i < gap; i ++)
39             {
40                 cnt = 1;
41                 while(i+gap*cnt<input.size())
42                 {
43                     if(input[i]!=input[i+gap*cnt++])
44                     {
45                         flag = 0;
46                         break;
47                     }
48                 }
49             }
50             if(flag)
51             {
52                 cout << gap << endl;
53                 break;
54             }
55         }
56         if(!flag)
57         {
58             cout << input.size() << endl;
59         }
60         if(T>0)
61             cout << endl;
62     }
63     return 0;
64 }

 

posted @ 2018-09-06 13:31  Asurudo  阅读(136)  评论(0编辑  收藏  举报