周期串(Periodic Strings)

2023-11-29 02:12
文章标签 周期 strings periodic

本文主要是介绍周期串(Periodic Strings),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

做了我两个小时,我真的裂开

之前已经发过一次了,走在回宿舍的路上突然发现有些情况并不适用,赶紧删掉了

题目如下:

如果一个字符串可以由某个长度为k的字符串重复多次得到,则称该串以k为周期。例如:abcabcabcabc以3为周期(注意,它也以6和12为周期)

输入一个长度不超过80的字符串,输出其最小周期

一些测试点:

abcab

abcababcab

ababc

ababcababc

abcababcabcababc

ababcababc

最后一个就是我路上想出来的,上一个代码并不适用的测试点

第一次的思路是一个字符数组记录暂时重复的字符串,另一个是记录和上一个字符数组相同部分的字符串,一旦出现不同,就把第二个字符串接到第一个上面去

第二次的思路是整个字符串都放在一个数组里面,然后用length记录重复串的长度,前length个字符就是重复串,而count记录暂时相同的的字符串长度,然后一一比较,一旦出现不同length就加上count(count为0就加1)

两个思路都不行,问题在于,如果length一下延长很多,可能会出事

那延长的长度控制在1就行了

这是第三个思路

代码如下:

#include<stdio.h>
#include<string.h>int main(void)
{char str[81] = {'\0'};scanf("%s", str);int len = 1, count = 0;for(int i = 1; i < (int)strlen(str); i++)if(str[i] == str[count])count++;elselen++, i = len - 1, count = 0;printf("%d", len);return 0;
}

虽然count会超过len,但是不会影响比较

。。。

或许以后碰到类似的题就可以秒了

引以为戒

看着简单的题还是要多手动写写

这篇关于周期串(Periodic Strings)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/431076

相关文章

android的strings整理脚本

统一对String整理的工具,结构如下 代码 package com.owant.toollib;import java.io.BufferedReader;import java.io.File;import java.io.FileReader;import java.util.ArrayList;import java.util.List;import java.util

[leetcode] 43. Multiply Strings(大数相乘)

Multiply Strings 描述 Given two non-negative integers num1 and num2 represented as strings, return the product of num1 and num2. Note: 1. The length of both num1 and num2 is < 110. 2. Both num1 an

四种信号在时域和频域之间的对应关系(连续周期/非周期、离散周期/非周期)(拉普拉斯、Z变换)

1. 连续周期时间信号 时域:连续周期时间信号可以理解为一种在时间上重复的波形,比如正弦波或余弦波。频域:在频域中,这种信号可以分解为一系列不同频率的正弦波的叠加。每个正弦波对应一个频率和一个复数系数 (C_n),这些系数告诉我们各个频率成分的强度和相位。 公式解释: x ~ ( t ) = ∑ n = − ∞ ∞ C n ⋅ e j n ω 0 t \tilde{x}(t) = \

市场情绪周期2024-6-17(补涨回头潮视角验证)

竞价隔夜单 看长江通信,38亿涨到40亿又回落,那么周末最大的利好消息加持下,隔夜单不及预期,金溢科技 更是如此;空间板华闻集团8天7板,连扳5板,一字跌停,它也是有车联网的,无溢价一字跌停,同时 国风新材 一字跌停被核,对于华闻就是协和电子周期的补涨高度,那么这次补涨周期高度不会超过5板,顶多摸5板,所以协和电子断板日的2板,东晶电子竞价没有开一字,就弱,开盘下杀有承接,回封,这个买点可以不参与

STM32CubeMX配置-RTC周期唤醒

一、简介         MCU为STM32G070,采用内部时钟32KHZ,配置为周期6s唤醒,调用回调函数,进行喂狗操作。 二、配置         初始时间、日期、周期唤醒时间配置。         开启周期唤醒中断 三、生成代码         调用回调函数,进行喂狗操作。 //RTC唤醒回调函数,6s唤醒一次void HAL_RTCEx_WakeUpTimerEv

一个比官方strings.Title更精简高效的将字符串中所有单词首字母转换为大小写的go函数

在go语言的官方包 strings中,官方提供了Title函数用于将字符串中的单词首字母转换为大写,这个函数很绕,对于要转换的字符串先是一个Map循环,然后接着又是一个Map循环,且函数调函数掉了好多层,而且最新版本中已经标记为过时,推荐使用一个更绕的golang.org/x/text/cases包中的函数进行转换。 下面的函数使用了高效的正则来切割字符串,同时支持自定义切割字符来对字符串中的所

imx6ull Enhanced Periodic Interrupt Timer (EPIT)

一、overview EPIT是一个32位的计时器,能够在处理器很少干预的情况下以固定的时间间隔提供精确的中断。软件使能后,EPIT就开始计数。IMX6ULL有2个EPIT定时器。其框图如下所示: 1.1 epit 特性 EPIT具有以下主要特性: •可选择时钟源的32位递减计数器 •12位预分频器,用于对输入时钟进行分频 •可即时编程的计数器值 •可以设置在低功耗和调试模式下,计数器仍

{ Cracking The Coding Interview: 150 programming QA } --- Arrays and Strings

Hashtable, ArrayList (Dynamically resizing array, providing O(1) access), StringBuffer (do string concatenation) 1. 判断string是否有重复字符,不允许使用其他数据结构。 Step 1: 问清楚限制,string的编码是ASCII还是Unicode a. 如果可以用其他数

linux 命令之strings

strings 命令是在对象文件或二进制文件中查找可打印的字符串。字符串是4个或者更多可打印字符串的任意序列,以换行符或者空字符结束。 strings语法 strings [options] file_name options: -a / -all : 扫描整个文件而不是只扫描目标文件初始化和装载段。 -f / -print-file-name:在显示字符串前显示文件名 -n / -b

工业铝型材生产周期一般是多久?

在工业制造领域中,铝型材作为一种轻便、强度高、耐腐蚀的金属材料,其应用范围十分广泛。而用户在进行定制之前,需了解其生产周期。那么,工业铝型材生产周期一般是多久?为方便大家了解,下面就让小编来为大家介绍下:   首先,铝型材生产的基本流程包括原材料准备、铸造、挤压、冷却、淬火、切割等环节。具体而言,工业铝型材生产周期及基本流程如下:   1、原材料准备:选择高品质的铝合金,按照一定比例混合,制成