当前位置:首页 > 题解目录 > 正文内容

【题解】Power Strings

亿万年的星光12个月前 (04-11)题解目录685

【题目描述】

给定若干个长度 ≤106 的字符串,询问每个字符串最多是由多少个相同的子字符串重复连接而成的。如:ababab 则最多有 3 个 ab 连接而成。

【输入描述】

输入若干行,每行有一个字符串,字符串仅含英语字母。特别的,字符串可能为 . 即一个半角句号,此时输入结束。

【输出描述】

若干行,每个数一行。

【样例输入】

abcd
aaaa
ababab
.

【样例输出】

1
4
3


【参考答案】

#include <bits/stdc++.h>
using namespace std;
bool isRepeat(string str,int len) {
	bool flag = true;
	for(int i = len; i+len<=str.size(); i+=len) {
		for(int j = 0, t =i; j<len; j++,t++) {
			if(str[j]!=str[t]) {
				flag = false;
				break;
			}
		}
		if(!flag) false;
	}
	return flag;
}
int getM(string str) {
	for(int len = 1; len<str.size(); len++) {
		if(str.size()%len==0) {
			if(isRepeat(str,len)) {
				return str.size()/len;
			}
		}
	}
	return 1;
}
int main() {
	string word;
	while(cin>>word) {
		if(word==".")break;
		int res = getM(word);
		cout<<res<<endl;
	}
}


    扫描二维码推送至手机访问。

    版权声明:本文由青少年编程知识记录发布,如需转载请注明出处。

    分享给朋友:

    相关文章

    【题解】游览动物园

    【题目描述】动物园有很多游览区,小红已经在动物园的一个游览区游览,突然接到电话,要半个小时内到动物园外面跟一个朋友见面。半个小时小红只够游览完当前区域之后,游览一个最近的景区。已知从一个游览区域只能沿...

    【题解】后缀表达式的值

    【题解】后缀表达式的值

    【题目描述】从键盘读入一个后缀表达式(字符串),只含有0-9组成的运算数及加(+)、减(—)、乘(*)、除(/)四种运算符。每个运算数之间用一个空格隔开,不需要判断给你的表达式是否合法。以@作为结束标...

    因子分解

    【题目描述】输入一个数,输出其素因子分解表达式。【输入描述】输入一个整数 n (2≤n<100)。【输出描述】输出该整数的因子分解表达式。表达式中各个素数从小到大排列。如果该整数可以分解出因子a...

    【题解】赢得比赛需要的最少训练时长

    【题目描述】你正在参加一场比赛,给你两个 正 整数 initialEnergy 和 initialExperience 分别表示你的初始精力...

    【题解】01串

    【题目描述】Fans是个ACM程序设计迷。有时侯,他表现出很强烈的逆反心理,你往东,他往西,你往南,他偏往北。这一次,不知道又是谁惹着他了,好端端的一个个01串,到了他的手里,都变成10串了。请你编个...

    【题解】石子合并

    【题目描述】在一个操场上一排地摆放着N堆石子。现要将石子有次序地合并成一堆。规定每次只能选相邻的2堆石子合并成新的一堆,并将新的一堆石子数记为该次合并的得分。设计一个程序,计算出将N堆石子合并成一堆的...