励志用尽量少的代码做高效表达


题目(提交)链接——>UVa-455


题意:

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

思路:

本题的最佳思路是取余构造循环串求最小周期
按照正常求周期的方法,若取不同周期长度,遍历次数也会不同,稍有不慎遍历的字符就会漏掉或溢出。
因此我们采取取余的方式将串首位相连,在逻辑上增加串的长度,使得取不同周期长度遍历的次数都是相同的,这样就可以用一个循环解决问题。
当然,本题采用字符串分割的方式也可以解决,但太臃肿,低效,因此笔者没有给出实现代码。

代码:

#include <bits/stdc++.h>
using namespace std;
int main() {char str[100];int N; cin >> N; while(N--) {cin >> str;int len = strlen(str), t = 1;while(1) {int c = 0; for(int i = 0; i<len; ++i)                     if(str[i] == str[(i+t)%len]) ++c;else break;                               //降低消耗 if(c == len) break;t++;}cout << t << endl;if(N != 0) cout << endl; }
return 0; }

读书时时有个我在,行事桩桩少对人言。

19行代码AC——习题3-4 周期串(UVa-455)_解题报告相关推荐

  1. 15行代码AC——习题5-5 复合词(Compound Words, UVa 10391)——解题报告

    励志用少的代码做高效的表达 题目(提交)链接→UVA-10391 本题实质是#include<string>头文件的substr()字符串分割函数与#include<algorith ...

  2. 11行代码AC——比紫书优化,例题2-3 近似计算——解题报告

    励志用更少的代码做高效的表达 题意: 计算π/4 = 1 - 1/3 + 1/5 - 1/7 + -,直到最后一项小于10^-6. 思路分析: 本题很简单,因此计算重心从解题转化为优化. 本题为重复计 ...

  3. 21行代码AC——习题5-1 代码对齐(Alignment of Code, UVa1593)——解题报告

    题意: 输入若干行代码,要求各列单词的左边界对齐且尽量靠左,单词之间至少要空一格,每个单词不超过80个字符,每行不超过180个字符,一共最多1000行. 思路: 1.输入内容存入二维数组 2.找出每列 ...

  4. 【19行代码AC,简洁】1029 Median (25 分)

    立志用最少的代码做最高效的表达 PAT甲级最优题解-->传送门 Given an increasing sequence S of N integers, the median is the n ...

  5. 28行代码AC——习题3-12 浮点数(UVA 11809 - Floating-Point Numbers)——解题报告

    励志用少的代码做高效的表达 题目(提交)链接→UVA-11809 算是个数学题吧,虽然在AOAPC上面给放到象征水题的第三章里面了. 这个题基本就是帮着你复习了一遍浮点数的存储方式了.浮点数在计算机里 ...

  6. 21行代码AC——习题3-7 DNA序列(UVa-1368)_解题报告

    励志用尽量少的代码做高效表达. 题目(提交)链接→UVa-1368 思路: DNA序列:按列遍历,记录每一列出现次数最多(若同样多,则字典序最小)的字母,录入s串累加. 距离:重新遍历,录入出现次数比 ...

  7. 19行代码AC——例题 6-2 铁轨(Rails, UVa 514)——解题报告

    励志用尽量少的代码做高效的表达. 提交(题目)链接→UVa-514 此题的本质是:给出"入栈顺序",判断给定序列是否可以出栈. 有点像这种题: 因此思路也类似: 思路: 数组存储列 ...

  8. 22行代码AC——习题5-6 对称轴(Symmetry,UVa1595)——解题报告

    励志用尽量少的代码做高效的表达. 题目(提交)链接→UVa-1595 思路: 此题本质是一道笛卡尔坐标系上的对称性问题. 判定性问题:由于只要能判别图像是否左右对称即可,无需确认关于哪条垂直线对称,那 ...

  9. 15行代码AC——习题3-3 数数字 (UVa1225,Digit Counting)

    大意: 把n(n<=10000)个整数顺序写在一起,求0~9分别出现多少次 Sample Input 2 3 13 Sample Output 0 1 1 1 0 0 0 0 0 0 1 6 2 ...

最新文章

  1. JVM插码之三:javaagent介绍及javassist介绍
  2. java如何读取自定义log4j2_spring boot自定义log4j2日志文件的实例讲解
  3. php mysql 迁移_将phpstudy中的mysql迁移至Linux教程
  4. 干货!全网最全一套目标检测、卷积神经网络和OpenCV学习资料(教程/PPT/代码)...
  5. numpy教程:随机数模块numpy.random
  6. Ubuntu 16.04下安装VMware Tools
  7. 安全教育思维导图模板分享
  8. 读书笔记 | 财务会计理论(第7版 William R.Scott)(上)
  9. 35个优秀的电子商务网站设计案例
  10. [c语言]malloc动态开辟内存空间
  11. 由于文件组 'PRIMARY 中的磁盘空间不足,无法为数据库 'newnet' 分配新页。请删除文件组中的对象、将其他文件添加到文件组或者为文件组中的现有文件启用自动增长,以便增加必要的空间。
  12. Dom获取 属性操作
  13. 【ARM】IMX6UL串口通信
  14. android type-c 接电视,有Type - C接口,却想电脑直连电视机?教你5个方法,简单又实用...
  15. python实现键盘记录木马
  16. 【Java】面向对象继承法举例2——老师学生类
  17. Oracle 换库时发生 Connections could not be acquired from the underlying database
  18. linux系统时间不同步解决办法(同步本地时间)
  19. 智能辅助系统在配电室内的施工方案 安装位置
  20. 由于下列原因,安装程序无法继续microsoft office 2016 需要通用CRT(KB2999226)

热门文章

  1. 解决Git中的fatal: refusing to merge unrelated histories
  2. Kafka端到端审计
  3. Comparable与Comparator浅析
  4. 回答我,停止 Goroutine 有几种方法?
  5. 对话七牛云技术总监陈辉:音视频行业中的新系统新规划和新增长
  6. LiveVideoStackCon 专题评审团招募进行中
  7. 音视频技术开发周刊 | 230
  8. Easy Tech:什么是I帧、P帧和B帧?
  9. TikTok测试三分钟视频、Reddit首次公布DAU、谷歌解雇人工智能领头人、年度最受欢迎应用|Decode the Week...
  10. 从C++转向最受欢迎的Rust语言