您的位置:首页 > 其它

chaper3_exerise_UVa455_周期串

2016-06-14 17:40 281 查看
#include<iostream>
#include<cstring>
#include<stdio.h>
using namespace std;
const int maxn = 1010;

int equ(const char *a,int beg,int beh)        //总是与首字符形成的串相比,beh为后一个的序列
{
int n = strlen(a), i;
for (i = 0; i < n; i++)
{
if (a[i] != a[(beh+i)%n])
return 0;
}
return beh;

}
int main(void)
{
int T;
char a[maxn];
cin >> T;
while (T--)
{
int count = 0;
cin >> a;
int ans = 0;
for (int i = 1; i < strlen(a); i++)
{
if (equ(a,0,i)) {       //后面开始形成的串如果和首字符形成的(环形)串相同,即后面的(位置)为周期
count = equ(a,0,i);
break;
}
}
if (count)
cout << count << endl;
else
cout << strlen(a) << endl; //如果没有,即输入的字符长度为周期
if (T > 0)                     //不要多输出换行
cout << endl;
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: