字符串最小周期串问题

2023-05-16

问题描述:

如果一个字符串可以由某个长度为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;
}


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

字符串最小周期串问题 的相关文章

  • Linux DISPLAY 设置

    在Linux Unix类操作系统上 DISPLAY用来设置将图形显示到何处 直接登陆图形界面或者登陆命令行界面后使用startx启动图形 DISPLAY环境变量将自动设置为 0 0 此时可以打开终端 输出图形程序的名称 比如xclock 来
  • cmake简单使用及编译项目打包成so文件

    简介 CMake是一个跨平台的编译自动配置工具 xff0c 它使用一个名为CMakeLists txt的文件来描述构建过程 xff0c 可以产生标准的构建文件 它可以用简单的语句来描述所有平台的安装 编译过程 它能够输出各种各样的makef
  • 2021基于Debian的All in One(NAS+软路由)配置教程

    基于Debian10的NAS系统配置 系统概述需求分析功能实现 系统配置简介Debian10的镜像下载与安装系统配置准备oh my zsh安装ssh远程访问开机自动登录root花生壳远程sshFrp图形化界面卸载网路配置磁盘相关命令 软件安
  • 3D Slicer源代码编译与调试(Visual Studio)

    开始 本文将Slicer的源码在Windows系统的编译过程记录下来 我的编译环境 xff1a Qt5 9 3VS2015Git 2 16 1CMake 3 14 1NSIS Unicode NSIS 编译 上述编译环境的准备好之后 xff
  • c++对象模型

    一 什么是c 43 43 对象模型 语言中直接支持面向对象程序设计的部分 对于各种支持的底层实现机制 二 c 43 43 对象的布局成本 成员函数不占用成本 member functions虽然再class的声明之内 xff0c 却不在ob
  • mybatis-plus返回查询总记录数方式(亲测)

    这篇文章主要介绍了mybatis plus返回查询总记录数方式 xff0c 具有很好的参考价值 xff0c 希望对大家有所帮助 如有错误或未考虑完全的地方 xff0c 望不吝赐教 mybatis plus返回查询总记录数mybatis pl
  • Android 模拟器串口与PC虚拟串口通讯

    基于上一篇文章 xff0c Android studio 使用NDK 实现串口 动态库 使用NDK生成 so 库操作PC中的串口 以及Android studio 3 0 and Gradle3 0 JNI 生成 so 库 1 开发环境 1
  • ArchLinux遇到问题unable to lock database

    在ArchLinux上更新系统或者安装软件 xff0c 如 pacman Syu xff0c 遇到下列问题 xff1a error failed to init transaction unable to lock database err
  • 【终极解决方案】当前不会命中断点,还没有为该文档加载任何符号

    我们在用vs进行debug时 xff0c 有的时候会出现无法单步调试 xff0c 提示 当前不会命中断点 xff0c 还没有为该文档加载任何符号 查询网上资料 xff0c 基本都是以下这样 xff1a 在vs里边 xff0c 工具 gt 选
  • Gitlab的安装及使用

    1 Gitlab概述 1 1 GitLab介绍 GitLab是利用Ruby on Rails一个开源的版本管理系统 xff0c 实现一个自托管的Git项目仓库 xff0c 可通过Web界面进行访问公开的或者私人项目 GitLab能够浏览源代
  • UVa 11168 Airport

    这个月看看计算几何 xff0c 这道题写的代码出现的问题还是挺多的 xff0c 不过索性最后解决了 题意 xff1a 给出平面上n个点 xff0c 找一条直线 xff0c 使得所有点在直线的同侧 xff08 也可以在直线上 xff09 xf
  • 使用JSON实现SQL Server少量数据传递(导入导出)

    摘要 xff1a 在开发业务系统时 xff0c 对于使用SQL Server作为业务数据库时 xff0c 要将数据从发库数据配置完成后需要同步到生产库时 xff0c 使用SQL Server自带的工具不是那么流畅 xff0c 本文介绍一种使
  • Mybatis Plus中的lambdaQueryWrapper和LambdaUpdateWrapper

    一 Mybatis Plus中的lambdaQueryWrapper xff1a 用法 xff1a 1 mybatis plus依赖中接口类IService中有这样一个方法 default List lt T gt list Wrapper
  • Docker 从Dockerfile 构建镜像 :build 命令的用法

    前些天发现了一个巨牛的人工智能学习网站 xff0c 通俗易懂 xff0c 风趣幽默 xff0c 忍不住分享一下给大家 点击跳转到教程 Dockerfile 创建完成后 xff0c 可以使用 docker build 命令根据 Dockerf
  • Windows下subsystem子系统(wsl)的默认安装位置

    位置在 xff1a C Users THINK AppData Local Packages CanonicalGroupLimited UbuntuonWindows 79rhkp1fndgsc LocalState rootfs 备注
  • 关于提示unrecognized class file version的原因

    今天在发布一个网站的时候 xff0c 发现用java jar 可以运行jar包 xff0c 但是运行到一半会卡住如下图所示 但是我在idea里却可以完美的运行 xff0c 于是我去查了一下资料 xff0c 然后改了几个配置 xff0c 最后
  • Hex编码

    Hex编码的编码原理 xff1a Hex编码的原理就是将原来8位的二进制字节打断 xff0c 分成两个4位的 xff0c 并且在前面加上4个零 xff0c 进行补位这样一个8位二进制字节就变成了2个8位的二进制字节 xff0c 在将新得到的
  • request.post()

    在通过requests post 进行POST请求时 xff0c 传入报文的参数有两个 xff0c 一个是data xff0c 一个是json 常见的form表单可以直接使用data参数进行报文提交 xff0c 而data的对象则是pyth
  • 将python项目(django/flask)打包成exe和安装包

    目录 打包Flask项目写一个简单的Flask项目下载pyinstaller进入到项目路径下 xff0c 执行运行exe xff0c 测试 使用nsis把文件夹打包成windows的安装包下载安装nsis把dist文件夹下的run文件夹压缩
  • Kotlin学习

    开始学习Kotlin xff0c 将学习过程中遇到的 xff0c 看到的知识点记录下来 配置Kotlin环境 在项目根目录build gradle配置 buildscript ext kotlin version 61 39 1 2 71

随机推荐