1. #include<cstdio>
  2. #include<cstring>
  3. #include<iostream>
  4. using namespace std;
  5. const int maxn = 1000 + 10;
  6. int main(){
  7. char s[maxn];
  8. cin>>s;
  9. int len = strlen(s);
  10. for(int i=1;i<=len/2;i++){ // i为子串长度
  11. string s1="";
  12. for(int j=0;j<i;j++){ // s1为第一个子串
  13. s1+=s[j];
  14. }
  15. int j=i;
  16. bool flag = true;
  17. while(j<len){ // 与后面的第2个,第3个...子串作比较,长度全为i,需全部一致
  18. string s2="";
  19. for(int p=j;p<j+i;p++){
  20. s2+=s[p];
  21. }
  22. if(s1==s2){
  23. j+=i;
  24. }else{
  25. flag=false; // 若遇到不一致则退出
  26. break;
  27. }
  28. }
  29. if(flag){ // 第一个全部匹配完成的即是切割成最多的
  30. cout<<len/i; // 整体长度/子串长度=子串个数
  31. break;
  32. }
  33. }
  34. return 0;
  35. }
点赞(0)
 

6.8 分

5 人评分

 

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论