给你一个字符串,请你判断将此字符串转化成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;
//}
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。