您的位置:首页 > 其它

周期节

2015-10-17 16:45 141 查看


循环节


Time Limit: 1000ms Memory limit: 65536K 有疑问?点这里^_^



题目描写叙述

X近期爱上了一种奇怪的游戏,就是找出一个字符串中的最小循环节。

对于最小循环节的定义:对于字符串A存在字串B,使得A是由N个完整的B组成的,那么B就是A的一个循环节,长度最小的那一个为最小循环节。


输入

多组输入。
每组输入一个字符串。长度不大于80,仅仅包括26个小写字母。


输出

输出一个字符串,代表最小循环节。


演示样例输入

aaaa
abab



演示样例输出

a
ab



提示


来源

zmx


演示样例程序

#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
using namespace std;
char a[100];
char b[100];
int main()
{
while(~scanf("%s",a))
{
int flag = 1;
int len = strlen(a);
int n,l,mm=0;
for(int i = 0;i<len;i++)
{
b[mm] = a[i];
flag = 1;
l = 0;
for(int j = mm+1;j<len;j++)
{
if(a[j]!=b[l++])
{
flag = 0;
break;
}
if(l==mm+1)
l = 0;
}
if(flag==1&&l==0)
break;
mm++;
}
b[++mm] = '\0';
puts(b);
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: