字符串最小周期串问题
问题描述:
如果一个字符串可以由某个长度为n的字符串重复多次得到,则该串以n为周期。例如,abcabcabcabc以3为周期(注意,它也以6和12为周期)。
输入一个长度不超过100的串,输出它的最小周期。
样例输入:ChinaChinaChina
样例输出:5
问题分析:
字符串可能有多个周期,但是只需求出最小的一个。可以从小到大枚举各个周期(即从1到字符串大小),一旦符合条件就立即输出。当不是周期串时输出
的最小周期即为其本身长度。
代码如下:
#include <stdio.h>
#include <string.h>int main()
{char str[101];scanf("%s", str);int i, j, flag=1;//i记录周期长度,j记录从第二个周期开始字符的位置int len = strlen(str);//len为字符串长度for(i=1; i <= len; i++)if(len%i == 0)//字符串的长度一定可以被周期整除{flag = 1;//检测 字符串是否具有周期性for(j=i; j<len; j++)//str[i]为第二周期的第一个字符{if(str[j] != str[j%i]){flag = 0;break;}}if(flag)//找到周期跳出break;}printf("%d\n", i);return 0;
}
字符串最小周期串问题相关推荐
- 周期串java_求最小周期串
如果一个字符串可以由某个长度为k的字符串重复多次得到,则该串以k为周期.例如,abcabcabcabc以3为周期(注意,它也以6和12为周期).输入一个长度不超过80的串,输出它的最小周期. 样例输入 ...
- ACM学习历程23——最小周期串问题
最小周期串问题属于字符串操作的基本题型之一,要求给定一个字符串找出其中最小的周期长度和最小周期子串.对于周期串的定义如下:如果一个字符串是以一个或者一个以上的长度为K的重复字符串连接成的,那么这个字符 ...
- C++算法9:KMP应用求字符串最小周期
1.输入重复序列的字符串,如果周期不存在,输出NO,如果周期存在,输出最小周期. 2.代码: # include <iostream> # include <string>us ...
- XDOJ最小周期串 297
这个博主的代码写得非常好 get到一直新知识点,周期类问题用取余数的方法很好做.
- 基础题目选解_字符串(QWERTY,TEX括号 , 周期串)
字符串 QWERTY 敲键盘,网游错一位,还原输出.(终于知道为什么有的题目写的那么简单了....) #include <stdio.h> char *s="`123456789 ...
- 周期字符串的最小周期
题目描述 右右喜欢听故事,但是右右的妈妈总是讲一些"从前有座山,山里有座庙,庙里有个老和尚给小和尚讲故事,讲的什么呢?从前有座山--"这样循环的故事来搪塞右右. 我们定义,如果一个 ...
- 周期串 字符串的最小正周期
输入一个长度不超过80的字符串,输出它的最小周期. 例子输入:HoHoHo 例子输出:2 代码: #include<iostream> #include<string.h> i ...
- uva455periodic strings周期串
http://acm.hust.edu.cn/vjudge/contest/view.action?cid=93800#problem/D 题意:输入一串长度不超过80的字符串,这个字符串可由一个字符 ...
- nyoj1121周期串
题目链接:http://115.159.40.116/problem_show.php?pid=5661 http://acm.nyist.net/JudgeOnline/problem.php?pi ...
最新文章
- 如何为windows服务添加安装程序(转)
- SQL调优--记一次表统计信息未及时更新导致查询超级慢
- 用户模式 VS 内核模式(1)
- Java基础面试16问
- 分久必合的Lindorm传奇
- The requested URL /server-status was not found on this server
- Shell脚本实现模拟并发及并发数控制
- C# WinForm绘图相关
- 不删除文字聊天的微信清理工具,快速释放空间,Python 编写,附源码
- 内外网同时上怎么设置
- 使用清华源镜像安装pytorch
- Ubantu18.04上配置cuda10.0和cudnn
- 2015年网易考拉海淘android面试
- 微信公众号用户授权登录逻辑
- 史上最全Python快速入门教程,让你快速入门python学好python
- obs源码分析【八】:显示器采集
- 47 On Interpersonal Relationship 关于人际关系
- revit中的楼板开洞做法?如何快速一键开洞?
- 如何修复AIrPods不断与iPhone断开连接的小技巧
- 从0到1,一个普本学生的三年学习历程
热门文章
- 利用filezilla更快完成作业上传
- 我想给你一个家 -- 给我一次爱你的机会
- c# 单纯形法_单纯形法实验报告.doc
- CF817D Imbalanced Array(单调栈)
- 睡眠不足,让你更易神游网络不思工作
- 推荐一个动漫风格转换的开源项目!可在线运行
- flink-1.11 Application 模式
- vue-router使用pathMatch(catchAll)+redirect报错Discarded invalid param(s) “pathMatch“ when navigating
- clearfix的用法
- 【已解决】报错qt.qpa.plugin: Could not load the Qt platform plugin “windows“ in “...“ even though it was