天天看點

藍橋杯 算法提高 現代詩如蚯蚓

本題使用C++的substr方法寫會十分友善

ac代碼如下

#include <iostream>
#include <cmath>
#include <string>
using namespace std;
 
int main()
{
	string str;
	cin>>str;
	int max1=0;
	int count;
	for(int i=1;i<=str.length();i++){
		count=1;
		string sub_str=str.substr(0,i);
		if(str.length()%i!=0)continue;
		for(int j=i;j<str.length();j+=i){
			string sub_str1=str.substr(j,i);
			if(sub_str==sub_str1)count++;
		}
		if(count==str.length()/i)max1=max(count,max1);
	}
 	cout<<max1;
} 
           

順便轉載一下string的substr用法

substr有2種用法:

假設:string s = "0123456789";

string sub1 = s.substr(5); //隻有一個數字5表示從下标為5開始一直到結尾:sub1 = "56789"

string sub2 = s.substr(5, 3); //從下标為5開始截取長度為3位:sub2 = "567"

改用法轉自

http://blog.csdn.net/liuchuo/article/details/54599840

繼續閱讀