对于字符串str,求满足最大的连续子串n
str的长度为len
n一定为len的因数,且对于子串s的长度m
满足关系式len=m*n
因此我们枚举len每一个因数n,求出对应的子串长度m,从而得到子串s,再将s进行n次拼接,如果s==str且满足n为最大因数,那么此时n即为所求
#include <iostream>
#include <string>
using namespace std;
//n一定为字符串长度len的因数
int main(){
string str;
while(cin>>str){
if(str==".") break;
int len=str.size();
for(int n=len;n>0;n--){
if(len%n==0){
int m=len/n;
string temp=str.substr(0,m);
string s;
for(int i=0;i<n;i++) s+=temp;
if(s==str){
cout<<n<<endl;
break;
}
}
}
}
return 0;
}