最小循环节-next数组应用

最小循环节--next数组应用

循环节

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

题目描述

X最近爱上了一种奇怪的游戏,就是找出一个字符串中的最小循环节。
对于最小循环节的定义:对于字符串A存在字串B,使得A是由N个完整的B组成的,那么B就是A的一个循环节,长度最小的那一个为最小循环节。

输入

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

输出

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

示例输入

aaaa
abab

示例输出

a
ab
 
很明显这是next数组应用的部分
if(len%(len-next[len]==0)) 说明有最小循环节,最小循环节长度为len-next[len] 否则没有最小循环节,即自身循环,此时结果就是它自己