算法提高 现代诗如蚯蚓
时间限制:1.0s 内存限制:256.0MB
问题描述
现代诗如蚯蚓
断成好几截都不会死
字符串断成好几截
有可能完全一样
请编写程序
输入字符串
输出该字符串最多能断成多少截完全一样的子串
断成好几截都不会死
字符串断成好几截
有可能完全一样
请编写程序
输入字符串
输出该字符串最多能断成多少截完全一样的子串
输入格式
一行,一个字符串
输出格式
一行,一个正整数表示该字符串最多能断成的截数
样例输入
abcabcabcabc
样例输出
4
样例说明
最多能断成四个”abc”,也就是abc重复四遍便是原串
同时也能断成两个”abcabc”
最坏情况是断成一个原串”abcabcabcabc”
同时也能断成两个”abcabc”
最坏情况是断成一个原串”abcabcabcabc”
数据规模和约定
字符串长度<=1000
#include<iostream>
#include<string>
#include<cmath>
using namespace std;
int main()
{
string s;
cin >>s;
int i,j,k,slen=s.length(),flag=0;
if(slen>2||slen==1)
flag=1;
for(i=2;i<=sqrt(slen);i++){ //如果是素数的话 断成一个原串
if(slen%i==0){
flag=0;
break;
}
}
if(flag==1){
cout <<"1"<<endl;
exit(0);
}
int count,maxnum=0;
for(i=1;i<=slen/2;i++){ //长度
int iflag=1;
for(j=0;j+i<slen;j++){
if(s[j]!=s[j+i]){
iflag=0;
break;
}
}
if(iflag==1){
count=slen/i;
if(maxnum<count)
maxnum=count;
//cout <<count <<endl;
}
}
cout <<maxnum<<endl;
return 0;
}
算法提高 现代诗如蚯蚓
时间限制:1.0s 内存限制:256.0MB
问题描述
现代诗如蚯蚓
断成好几截都不会死
字符串断成好几截
有可能完全一样
请编写程序
输入字符串
输出该字符串最多能断成多少截完全一样的子串
断成好几截都不会死
字符串断成好几截
有可能完全一样
请编写程序
输入字符串
输出该字符串最多能断成多少截完全一样的子串
输入格式
一行,一个字符串
输出格式
一行,一个正整数表示该字符串最多能断成的截数
样例输入
abcabcabcabc
样例输出
4
样例说明
最多能断成四个”abc”,也就是abc重复四遍便是原串
同时也能断成两个”abcabc”
最坏情况是断成一个原串”abcabcabcabc”
同时也能断成两个”abcabc”
最坏情况是断成一个原串”abcabcabcabc”
数据规模和约定
字符串长度<=1000