C语言 · 周期字串
我们定义,如果一个字符串是以一个或者一个以上的长度为k的重复字符串所连接成的,那么这个字符串就叫做周期为k的串。
例如:
字符串’abcabcabcabc’周期为3,因为它是由4个循环’abc’组成的。它同样是以6为周期(两个重复的’abcabc’)和以12为周期(一个循环’abcabcabcabc’)。
右右现在想给他的朋友大灰狼转述妈妈讲的故事,请帮他写一个程序,可以测定一个字符串的最小周期。
/*
目标:测定一个字符串的最小周期;
要求:一个最大长度为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语言 · 周期字串的更多相关文章
- Java实现 蓝桥杯 算法提高 周期字串
算法提高 周期字串 时间限制:1.0s 内存限制:256.0MB 问题描述 右右喜欢听故事,但是右右的妈妈总是讲一些"从前有座山,山里有座庙,庙里有个老和尚给小和尚讲故事,讲的什么呢?从前有 ...
- 算法笔记_106:蓝桥杯练习 算法提高 周期字串(Java)
目录 1 问题描述 2 解决方案 2.1 第一印象解法(80分) 2.2 借鉴网友解法(100分) 1 问题描述 问题描述 右右喜欢听故事,但是右右的妈妈总是讲一些“从前有座山,山里有座庙,庙里有 ...
- 神奇C语言的字串处理库函数
头文件:#incldue<string.h> 定义:strstr(str1,str2) 函数用于判断字符串str2是否是str1的子串.如果是,则该函数返回str2在str1中首次出现的地 ...
- Inno Setup:获取isl中的多国语言字串
原文 http://zwkufo.blog.163.com/blog/static/25882512010101041626803/?suggestedreading&wumii 用InnoS ...
- 一道C语言面试题:判断字串是否可以通过重新排列字母使之对称
题目:输入一个字符串,如“adcaeceeed”,判断是否可以通过重新排列使之可以输出对称字符串,如本例可以输出“adceeeecda”,返回True. 来源:某500强企业面试题目 思路:扫描字串, ...
- C语言 · 字串逆序
算法训练 字串逆序 时间限制:1.0s 内存限制:512.0MB 问题描述 给定一个字符串,将这个串的所有字母逆序后输出. 输入格式 输入包含一个字符串,长度不超过100,字符串中不 ...
- C语言:自定义一个查找字串的功能函数,类似于<string.h>中的strstr()
//自定义一个字符串字串查找标准库函数strstr() #include<stdio.h> #include<string.h> char* myStrstr(char *st ...
- Python 字串处理
#!/usr/bin/python #-*- coding:utf-8 –*- import os import sys import re import shutil import xlrd imp ...
- 如何使用 Python 進行字串格式化
前言: Python有几种方法可以显示程序的输出:数据可以以人类可读的形式打印出来,或者写入文件以供将来使用. 在开发应用程式时我们往往会需要把变数进行字串格式化,也就是说把字串中的变数替换成变量值. ...
随机推荐
- win7 git 安装
下载git: https://git-scm.com/download/win 二.Git安装 去官网下载完后一路下一步完成安装,如下图: 安装完后先在系统环境变量中看下是否配置 然后在桌面右 ...
- 转 linux进程内存到底怎么看 剖析top命令显示的VIRT RES SHR值
引 言: top命令作为Linux下最常用的性能分析工具之一,可以监控.收集进程的CPU.IO.内存使用情况.比如我们可以通过top命令获得一个进程使用了多少虚拟内存(VIRT).物理内存(RES). ...
- samba 服务器搭建
为了能在两台机器上共享代码,方便测试不同平台性能和搭建分布式的web server,今天耗费半天时间搭建一个samba服务器共享数据,要求开放写权限,但多次实验均告失败,最终在 鸟哥 的提醒下 检查发 ...
- 王勇详谈 Linux Deepin 背后的故事
(Linux Deepin最近发布了12.12版本.其也许是国内第一款比较优秀的桌面Linux系统.在此向致力于研发国产OS系统的猿人们表示敬意.虽然Deepin只是基于Ubuntu在桌面应用和UI方 ...
- python 视频 图像帧提取
import cv2 vidcap = cv2.VideoCapture('005.avi') success,image = vidcap.read() count = 0 success = Tr ...
- U811.1接口EAI系列之五--材料出库--VB语言
主要业务有:09其他出库单 11:材料出库单 32:销售出库单 主要业务代码: '材料出库生成XML Public Function xml_storeout(ds_head As MSHFlexGr ...
- python 元类(metaclass)
元类参见老师的博客 http://www.cnblogs.com/linhaifeng/articles/8029564.html
- ansible 视频学习
ansible 视频地址 https://ninghao.net/video/4040
- Atitit 图像处理 halcon类库的使用 范例边缘检测 attilax总结
Atitit 图像处理 halcon类库的使用 范例边缘检测 attilax总结 1.1. 安装halcon11 ..体积大概1g压缩模式1 1.2. Halcon的科技树1 1.3. 启动 &qu ...
- 关于Verilog中的几种赋值语句
1. 连续赋值语句(Continuous Assignments) 连续赋值语句是Verilog数据流建模的基本语句,用于对线网进行赋值,等价于门级描述,是从更高的抽象角度来对电路进行描述.连续赋值语 ...