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

【题解】Power Strings

亿万年的星光3周前 (04-11)题解目录105

【题目描述】

给定若干个长度 ≤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;
	}
}


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

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

分享给朋友:

相关文章

【算法】滑动窗口2—窗口大小可变

【算法】滑动窗口2—窗口大小可变

对于滑动窗口第二类:窗口大小可变类型 图解如下,类似双指针算法。【解题思想】1、字符串 S 中使用双指针的左右指针技巧,初始化 left = right = 0,把索引的...

【题解】连通块

【题目描述】一个n × m的方格图,一些格子被涂成了黑色,在方格图中被标为1,白色格子标为0。问有多少个四连通的黑色格子连通块。四连通的黑色格子连通块指的是一片由黑色格子组成的区域,其中的每个黑色格子...

【题解】相关数

【题目描述】一个数与另一个数如果含有相同数字和个数的字符,则称两数相关。现有一堆乱七八糟的整数,里面可能充满了彼此相关的数,请你用一下手段,自动地将其剔除。【输入描述】每组数据前有一个N(<10...

【题解】使每位学生都有座位的最少移动次数

【题目描述】一个房间里有 n 个 空闲 座位和 n 名 站着的 学生,房间用一个数轴表示。给你一个长度为 n&...

【题解】踩方格

【题目描述】有一个方格矩阵,矩阵边界在无穷远处。我们做如下假设:a、每走一步时,只能从当前方格移动一格,走到某个相邻的方格上;b、走过的格子立即塌陷无法再走第二次;c、只能向北、东、西三个方向走;请问...

求Π的值

【题目描述】根据公式:arctanx(x)=x−x^3/3+x^5/5−x^7/7+…和π=6arctanx(1/√3).定义函数arctanx(x),求当最后一项小于10^(−6)时π的值。【输入描...