蓝桥杯算法提高 现代诗如蚯蚓

来源:互联网 发布:免费psd源码社区 编辑:程序博客网 时间:2024/05/16 01:48

原题:

  算法提高 现代诗如蚯蚓  
时间限制:1.0s   内存限制:256.0MB
    
问题描述
  现代诗如蚯蚓
  断成好几截都不会死
  字符串断成好几截
  有可能完全一样
  请编写程序
  输入字符串
  输出该字符串最多能断成多少截完全一样的子串
输入格式
  一行,一个字符串
输出格式
  一行,一个正整数表示该字符串最多能断成的截数
样例输入
abcabcabcabc
样例输出
4
样例说明
  最多能断成四个”abc”,也就是abc重复四遍便是原串
  同时也能断成两个”abcabc”
  最坏情况是断成一个原串”abcabcabcabc”
数据规模和约定
  字符串长度<=1000
分析:

字符串从1个字符到str.length()/2个字符试探,通过substr函数截取等长的字符串,并判断是否相同,如果全部相同,输出str.length()/i,如果有一个不同继续下一次循环。如果直到len/2个字符都没有相同的,直接输出1。

代码:

#include <iostream>using namespace std;int main(){    string str;    cin>>str;    int num ,temp = 0,len = str.length();    for(int i = 1;i <= len / 2;i++)    {        if(len % i != 0)            continue;        string t = str.substr(0,i);        int tag = 0;        for(int j = i;j < len;j += i)        {            if(t != str.substr(j,i))            {                tag = 1;                break;            }        }        if(tag == 0)        {            cout<<len/i;            return 0;        }    }    cout<<1;    return 0;}


1 0
原创粉丝点击