chaper3_exerise_UVa455_周期串

Posted 豆子

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了chaper3_exerise_UVa455_周期串相关的知识,希望对你有一定的参考价值。

 1 #include<iostream>
 2 #include<cstring>
 3 #include<stdio.h>
 4 using namespace std;
 5 const int maxn = 1010;
 6 
 7 int equ(const char *a,int beg,int beh)        //总是与首字符形成的串相比,beh为后一个的序列 
 8 {
 9     int n = strlen(a), i;
10     for (i = 0; i < n; i++)
11     {
12         if (a[i] != a[(beh+i)%n])
13             return 0;
14     }
15     return beh;
16 
17 }
18 int main(void)
19 {
20     int T;
21     char a[maxn];
22     cin >> T;
23     while (T--)
24     {
25         int count = 0;
26         cin >> a;
27         int ans = 0;
28         for (int i = 1; i < strlen(a); i++)
29         {
30             if (equ(a,0,i)) {       //后面开始形成的串如果和首字符形成的(环形)串相同,即后面的(位置)为周期 
31                 count = equ(a,0,i);
32                 break;
33             }
34         }
35         if (count)
36             cout << count << endl;
37         else
38             cout << strlen(a) << endl; //如果没有,即输入的字符长度为周期 
39         if (T > 0)                     //不要多输出换行 
40             cout << endl;
41     }
42     return 0;
43 }

 

以上是关于chaper3_exerise_UVa455_周期串的主要内容,如果未能解决你的问题,请参考以下文章

chaper3_exerise_Uva1568_Molar_Mass_分子量

chaper3_exerise_Uva1225_digit_counting

周期字符串[UVA-455]

习题3-4 周期串 UVa455

UVa455 周期串

UVA - 455(周期串)