UVa 455 Periodic Strings
2015-08-27 21:20
260 查看
Description
Download as PDF
Periodic Strings
A character string is said to have period k if it can be formed by concatenating one or more repetitions of another string of length k. For example, the string “abcabcabcabc” has period 3, since it is formed by 4 repetitions of the string “abc”. It also has periods 6 (two repetitions of “abcabc”) and 12 (one repetition of “abcabcabcabc”).
Write a program to read a character string and determine its smallest period.
Input
The first line oif the input file will contain a single integer N indicating how many test case that your program will test followed by a blank line. Each test case will contain a single character string of up to 80 non-blank characters. Two consecutive input will separated by a blank line.
Output
An integer denoting the smallest period of the input string for each input. Two consecutive output are separated by a blank line.
Sample Input
1
HoHoHo
Sample Output
2
找字符串中的最长循环节,直接暴力。
AC代码:
Download as PDF
Periodic Strings
A character string is said to have period k if it can be formed by concatenating one or more repetitions of another string of length k. For example, the string “abcabcabcabc” has period 3, since it is formed by 4 repetitions of the string “abc”. It also has periods 6 (two repetitions of “abcabc”) and 12 (one repetition of “abcabcabcabc”).
Write a program to read a character string and determine its smallest period.
Input
The first line oif the input file will contain a single integer N indicating how many test case that your program will test followed by a blank line. Each test case will contain a single character string of up to 80 non-blank characters. Two consecutive input will separated by a blank line.
Output
An integer denoting the smallest period of the input string for each input. Two consecutive output are separated by a blank line.
Sample Input
1
HoHoHo
Sample Output
2
找字符串中的最长循环节,直接暴力。
AC代码:
[code]// // Created by CQUWEL // Copyright (c) 2015年 CQUWEL. All rights reserved. // #include <iostream> #include <cstring> #include <cstdio> #include <cstdlib> #include <cctype> #include <cmath> #include <string> #include <vector> #include <list> #include <map> #include <queue> #include <stack> #include <set> #include <algorithm> #include <numeric> #include <functional> #define cir(i,a,b) for (int i=a;i<=b;i++) #define CIR(j,a,b) for (int j=a;j>=b;j--) #define CLR(x) memset(x,0,sizeof(x)) #define root 1,n,1 #define lson l,m,rt<<1 #define rson m+1,r,rt<<1|1 #define filetest freopen("C:\\Users\\john\\Desktop\\in.txt","r",stdin) #define BUG() printf("In here\n") #define seevalue(x) printf("x=%d\n",x) #define INF 0x3f3f3f3f const double eps=1e-9; typedef long long ll; using namespace std; int main(){ #ifdef LOCAL freopen("C:\\Users\\john\\Desktop\\in.txt","r",stdin); #endif int n; char s[100]; cin >> n; getchar(); getchar(); for (int t=1;t<=n;t++){ gets(s); // puts(s); getchar(); int len; int ls=strlen(s); char tmp[100]; for (len=1;len<=ls;len++){ if (ls%len==0){ int flag=0,j; for (j=0;j<len;j++) tmp[j]=s[j]; tmp[j]='\0'; // puts(tmp); int cnt=0; for (j=0;s[j];j++){ if (s[j]==tmp[cnt]){ cnt++; if (cnt==len) cnt=0; } else { flag=1; break; } } if (flag) continue; else break; } } if (t==1) printf("%d\n",len); else if (t==n) printf("\n%d\n",len); else printf("\n%d\n",len); } return 0; }
相关文章推荐
- 奥赛罗琪--大框设计
- LeetCode102-Binary-Tree-Level-Order-Traversal
- 静态库和动态库
- iOS中的UIScorllView(滑动控件,时机控制)的基本使用
- mysql查询结果添加序列号
- BZOJ2734: [HNOI2012]集合选数|状压DP
- LeetCode145-Binary-Tree-Postorder-Traversal
- LeetCode144-Binary-Tree-Preorder-Traversal
- Junit(5)趁热打铁
- Rectangle 响应按键
- 循环11~14
- CircuitBreakingException[[FIELDDATA] Data too large, data for [proccessDate] would be larger than li
- python爬虫爬取csdn博客专家所有博客内容
- 5 Longest Palindromic Substring
- Java——反射
- 编程之美-编程判断两个链表(可能含环)是否相交以及相交的第一个结点
- u3d_shader_surface_shader_5
- <!DOCTYPE> 的理解
- Django之第一个app<3>
- php设计模式专题附源码(解释器模式、工厂方法模式、外观模式、装饰模式、建造者模式)