给你一个字符串,请你判断将此字符串转化成a^n模式的最大的n是多少。
例如:abcd=(abcd)^1,则n=1;
aaaa=a^4,则n=4; ababab=(ab)^3,则n=3。
输出
输出蕴含多组测试数据。每组输出为一个字符串,长度不超过100,其中不蕴含空格等空白符。当输出为一个“.”时,输出完结。
输入
对于每组输出,输入将此字符串转化成a^n模式的最大的n。
样例输出 Copy
abcd
aaaa
ababab
.
样例输入 Copy
1
4
3
代码示例(本人写的,只能过平台,不完满)
//#include<iostream>//#include<string>//#include<string.h>//using namespace std;////int main(){// string s;// while(getline(cin,s)){// int len = s.length();// int i = 0, j = 0, cnt = 0;// if(s[0] == '.' && len == 1){// break;// }// for(i = len; i >= 1; i--){//i作为分母,不能为0(len / i )// if(len % i == 0){//示意可能有len/i个子串组成,不能整除length的先排除 // for(j = i; j < len; j++){//第二个for循环判断该子串是否是循环相等的 // if(s[j] != s[j % i]){//一一比照子串与后续等同长度的字符是否一样 // break;//,相等就j++,不相等就break,阐明目前并不是符合条件的小子串// } // }// cout << j << endl; // if(j == len){//如果上述循环未break则此时该i子串符合条件 // cnt = len / i; //用长度除以子串长度,即失去此时的子串,但此时可能并不是最短的即最多的子串,i持续减少可能能失去更小的子串 // }// }// }// cout << cnt << endl; // } // return 0;//}