[蓝桥杯][算法提高VIP]现代诗如蚯蚓
题目描述
现代诗如蚯蚓
断成好几截都不会死
字符串断成好几截
有可能完全一样
请编写程序
输入字符串
输出该字符串最多能断成多少截完全一样的子串
样例说明
最多能断成四个”abc”,也就是abc重复四遍便是原串
同时也能断成两个”abcabc”
最坏情况是断成一个原串”abcabcabcabc”
数据规模和约定
字符串长度< =1000
输入
一行,一个字符串
输出
一行,一个正整数表示该字符串最多能断成的截数
样例输入
abcabcabcabc
样例输出
4
AC代码:
#include <stdio.h>
#include <iostream>
#include <stdlib.h>
#include <string.h>
#include <string>
#include <cmath>
#include <map>
#include <set>
#include <algorithm>
using namespace std;
int main(){
string s;
cin>>s;
int sum = 0;
for(int i=1;i<=s.size();i++){
int f = 1;
if(s.size()%i == 0){
string s1 = s.substr(0,i);
int len = s.size()/i;
for(int j=1;j<len;j++){
string s2 = s.substr(j*i,i);
if(s1 != s2){
f = 0;
break;
}
}
if(f){
sum = max(sum,len);
}
}
}
cout<<sum<<endl;
return 0;
}