解题思路:
个人思路就是错位循环比较,成功就输出段数,不成功就说明不重复,输出1;

注意事项:
最开始错误91,不知道原因,后面换了个输入,gets换成scanf,成功AC。
参考代码:

#include<bits/stdc++.h>
using namespace std;
char * fx(char* p,int *sp)
{
	int len = strlen(p);
	p[len] = p[0];
	p[len + 1] = '\0';
	(*sp)++;
	return &p[1];
}
int main()
{
	char a[1001];
	char b[3001];
	scanf("%s",a);
	strcpy(b,a);
	int l = strlen(a);
	int s =0;
	char* p, * q;
	p = a;
	q = b;
	q=fx(q, &s);
	for (int i = 0; i < l-1; i++)
	{
		if (strcmp(p, q) == 0)
		{
			cout << l / s;
			break;
		}
		else q=fx(q, &s);
		if (i ==l-2) cout << "1";
	}

}


点赞(0)
 

0.0分

2 人评分

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

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

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

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

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

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

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

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

评论列表 共有 0 条评论

暂无评论