算法提高 周期字串  
时间限制:1.0s   内存限制:256.0MB
    
问题描述
  右右喜欢听故事,但是右右的妈妈总是讲一些“从前有座山,山里有座庙,庙里有个老和尚给小和尚讲故事,讲的什么呢?从前有座山……”这样循环的故事来搪塞右右。
  我们定义,如果一个字符串是以一个或者一个以上的长度为k的重复字符串所连接成的,那么这个字符串就叫做周期为k的串。
  例如:
  字符串’abcabcabcabc’周期为3,因为它是由4个循环’abc’组成的。它同样是以6为周期(两个重复的’abcabc’)和以12为周期(一个循环’abcabcabcabc’)。
  右右现在想给他的朋友大灰狼转述妈妈讲的故事,请帮他写一个程序,可以测定一个字符串的最小周期。
输入格式
  一个最大长度为100的无空格的字符串。
输出格式
  一个整数,表示输入的字符串的最小周期。
样例输入
HaHaHa
样例输出
2
样例输入
Return0
样例输出
7
 
作者注释:
思路:遍历字符串,记录下标表示寻找的最小周期,此时遍历下一个周期,与上一个周期对应位置的字符相等(代码16行是关键)则记录的下标就是最小周期,遍历直到字符串结尾结束。
 /*
目标:测定一个字符串的最小周期;
要求:一个最大长度为100的无空格的字符串
*/
#include<stdio.h>
#include<string.h>
int main(){
char a[];//定义字符串数组
gets(a);//输入字符串
int len=strlen(a);//获取字符串长度
for(int i=;i<=len;i++){//i表周期,最短为1,最长为len
int flag=;//定义标记
if(len%i==){//长度肯定是周期的倍数,满足条件才执行
//若i为周期,则遍历下一个周期对应元素是否与上一个周期的元素相等
for(int j=i;j<len;j++){
if(a[j%i] != a[j]){//不满足条件
flag=;//当前的i不是周期,标记置0
break;//跳出循环
}
}
if(flag==){//若标记不为0,则 i为最小周期
printf("%d",i);
break;
}
}
}
return ;
}

C语言 · 周期字串的更多相关文章

  1. Java实现 蓝桥杯 算法提高 周期字串

    算法提高 周期字串 时间限制:1.0s 内存限制:256.0MB 问题描述 右右喜欢听故事,但是右右的妈妈总是讲一些"从前有座山,山里有座庙,庙里有个老和尚给小和尚讲故事,讲的什么呢?从前有 ...

  2. 算法笔记_106:蓝桥杯练习 算法提高 周期字串(Java)

    目录 1 问题描述 2 解决方案 2.1 第一印象解法(80分) 2.2 借鉴网友解法(100分)   1 问题描述 问题描述 右右喜欢听故事,但是右右的妈妈总是讲一些“从前有座山,山里有座庙,庙里有 ...

  3. 神奇C语言的字串处理库函数

    头文件:#incldue<string.h> 定义:strstr(str1,str2) 函数用于判断字符串str2是否是str1的子串.如果是,则该函数返回str2在str1中首次出现的地 ...

  4. Inno Setup:获取isl中的多国语言字串

    原文 http://zwkufo.blog.163.com/blog/static/25882512010101041626803/?suggestedreading&wumii 用InnoS ...

  5. 一道C语言面试题:判断字串是否可以通过重新排列字母使之对称

    题目:输入一个字符串,如“adcaeceeed”,判断是否可以通过重新排列使之可以输出对称字符串,如本例可以输出“adceeeecda”,返回True. 来源:某500强企业面试题目 思路:扫描字串, ...

  6. C语言 · 字串逆序

    算法训练 字串逆序   时间限制:1.0s   内存限制:512.0MB      问题描述 给定一个字符串,将这个串的所有字母逆序后输出. 输入格式 输入包含一个字符串,长度不超过100,字符串中不 ...

  7. C语言:自定义一个查找字串的功能函数,类似于<string.h>中的strstr()

    //自定义一个字符串字串查找标准库函数strstr() #include<stdio.h> #include<string.h> char* myStrstr(char *st ...

  8. Python 字串处理

    #!/usr/bin/python #-*- coding:utf-8 –*- import os import sys import re import shutil import xlrd imp ...

  9. 如何使用 Python 進行字串格式化

    前言: Python有几种方法可以显示程序的输出:数据可以以人类可读的形式打印出来,或者写入文件以供将来使用. 在开发应用程式时我们往往会需要把变数进行字串格式化,也就是说把字串中的变数替换成变量值. ...

随机推荐

  1. Alan Cox:单向链表中prev指针的妙用

    之前发过一篇二级指针操作单向链表的例子,显示了C语言指针的灵活性,这次再探讨一个指针操作链表的例子,而且是一种完全不同的用法. 这个例子是linux-1.2.13网络协议栈里的,关于链表遍历& ...

  2. nginx / apache / tomcat /resin等 http server的benchmark性能测试方法

    性能测试是软件产品发布前必经阶段,对于web app的发布需要使用http server,可选择的优秀免费http server主要有开源apache server, 俄国的nginx,专用于java ...

  3. Python 文件 isatty() 方法

    概述 Python 文件 isatty() 方法检测文件是否连接到一个终端设备,如果是返回 True,否则返回 False. 语法 isatty() 方法语法如下: fileObject.isatty ...

  4. 【Python】Windows平台下Python、Pydev连接Mysql数据库

    Mysql数据库是跨平台的,不是说Python一定就要连接Mongodb. Python连接Mysql数据库是非常easy的. 首先,你要配置好Python的开发环境,详见<[Python]Wi ...

  5. GANS 资料

    https://blog.csdn.net/a312863063/article/details/83512870 目 录第一章 初步了解GANs 3 1. 生成模型与判别模型. 3 2. 对抗网络思 ...

  6. Python 爬虫 使用正则去掉不想要的网页元素

    在做爬虫的时候,我们总是不想去看到网页的注释,或者是网页的一些其他元素,有没有好的办法去掉他们呢? 例如:下面的问题 第一种情况<ahref="http://artso.artron. ...

  7. SpringBoot自定义序列化的使用方式--WebMvcConfigurationSupport

    场景及需求: 项目接入了SpringBoot开发,现在需求是服务端接口返回的字段如果为空,那么自动转为空字符串. 例如: [     {         "id": 1,      ...

  8. Talend 将Oracle中数据导入到hive中,根据系统时间设置hive分区字段

    首先,概览下任务图: 流程是,先用tHDFSDelete将hdfs上的文件删除掉,然后将oracle中的机构表中的数据导入到HDFS中:建立hive连接->hive建表->tJava获取系 ...

  9. Android基础知识之Manifest文件中的用户权限元素

    原文:http://android.eoe.cn/topic/android_sdk 分任务原文链接一:http://developer.android.com/guide/topics/manife ...

  10. Android 抓包并通过 Wireshark 分析

    分析 Android 中 app 的网络数据交互,需要在 Android 上抓包,常用工具为 tcpdump ,用 tcpdump 生成 Wireshark 识别的 pcap 文件,把 pcap 文件 ...