19行代码AC——习题3-4 周期串(UVa-455)_解题报告
励志用尽量少的代码做高效表达
题目(提交)链接——>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)_解题报告相关推荐
- 15行代码AC——习题5-5 复合词(Compound Words, UVa 10391)——解题报告
励志用少的代码做高效的表达 题目(提交)链接→UVA-10391 本题实质是#include<string>头文件的substr()字符串分割函数与#include<algorith ...
- 11行代码AC——比紫书优化,例题2-3 近似计算——解题报告
励志用更少的代码做高效的表达 题意: 计算π/4 = 1 - 1/3 + 1/5 - 1/7 + -,直到最后一项小于10^-6. 思路分析: 本题很简单,因此计算重心从解题转化为优化. 本题为重复计 ...
- 21行代码AC——习题5-1 代码对齐(Alignment of Code, UVa1593)——解题报告
题意: 输入若干行代码,要求各列单词的左边界对齐且尽量靠左,单词之间至少要空一格,每个单词不超过80个字符,每行不超过180个字符,一共最多1000行. 思路: 1.输入内容存入二维数组 2.找出每列 ...
- 【19行代码AC,简洁】1029 Median (25 分)
立志用最少的代码做最高效的表达 PAT甲级最优题解-->传送门 Given an increasing sequence S of N integers, the median is the n ...
- 28行代码AC——习题3-12 浮点数(UVA 11809 - Floating-Point Numbers)——解题报告
励志用少的代码做高效的表达 题目(提交)链接→UVA-11809 算是个数学题吧,虽然在AOAPC上面给放到象征水题的第三章里面了. 这个题基本就是帮着你复习了一遍浮点数的存储方式了.浮点数在计算机里 ...
- 21行代码AC——习题3-7 DNA序列(UVa-1368)_解题报告
励志用尽量少的代码做高效表达. 题目(提交)链接→UVa-1368 思路: DNA序列:按列遍历,记录每一列出现次数最多(若同样多,则字典序最小)的字母,录入s串累加. 距离:重新遍历,录入出现次数比 ...
- 19行代码AC——例题 6-2 铁轨(Rails, UVa 514)——解题报告
励志用尽量少的代码做高效的表达. 提交(题目)链接→UVa-514 此题的本质是:给出"入栈顺序",判断给定序列是否可以出栈. 有点像这种题: 因此思路也类似: 思路: 数组存储列 ...
- 22行代码AC——习题5-6 对称轴(Symmetry,UVa1595)——解题报告
励志用尽量少的代码做高效的表达. 题目(提交)链接→UVa-1595 思路: 此题本质是一道笛卡尔坐标系上的对称性问题. 判定性问题:由于只要能判别图像是否左右对称即可,无需确认关于哪条垂直线对称,那 ...
- 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 ...
最新文章
- JVM插码之三:javaagent介绍及javassist介绍
- java如何读取自定义log4j2_spring boot自定义log4j2日志文件的实例讲解
- php mysql 迁移_将phpstudy中的mysql迁移至Linux教程
- 干货!全网最全一套目标检测、卷积神经网络和OpenCV学习资料(教程/PPT/代码)...
- numpy教程:随机数模块numpy.random
- Ubuntu 16.04下安装VMware Tools
- 安全教育思维导图模板分享
- 读书笔记 | 财务会计理论(第7版 William R.Scott)(上)
- 35个优秀的电子商务网站设计案例
- [c语言]malloc动态开辟内存空间
- 由于文件组 'PRIMARY 中的磁盘空间不足,无法为数据库 'newnet' 分配新页。请删除文件组中的对象、将其他文件添加到文件组或者为文件组中的现有文件启用自动增长,以便增加必要的空间。
- Dom获取 属性操作
- 【ARM】IMX6UL串口通信
- android type-c 接电视,有Type - C接口,却想电脑直连电视机?教你5个方法,简单又实用...
- python实现键盘记录木马
- 【Java】面向对象继承法举例2——老师学生类
- Oracle 换库时发生 Connections could not be acquired from the underlying database
- linux系统时间不同步解决办法(同步本地时间)
- 智能辅助系统在配电室内的施工方案 安装位置
- 由于下列原因,安装程序无法继续microsoft office 2016 需要通用CRT(KB2999226)
热门文章
- 解决Git中的fatal: refusing to merge unrelated histories
- Kafka端到端审计
- Comparable与Comparator浅析
- 回答我,停止 Goroutine 有几种方法?
- 对话七牛云技术总监陈辉:音视频行业中的新系统新规划和新增长
- LiveVideoStackCon 专题评审团招募进行中
- 音视频技术开发周刊 | 230
- Easy Tech:什么是I帧、P帧和B帧?
- TikTok测试三分钟视频、Reddit首次公布DAU、谷歌解雇人工智能领头人、年度最受欢迎应用|Decode the Week...
- 从C++转向最受欢迎的Rust语言