共计 819 个字符,预计需要花费 3 分钟才能阅读完成。
给你一个字符串,请你判断将此字符串转化成 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;
//}
正文完