UVa 455 Periodic Strings
来源:互联网 发布:淘宝店铺如何快速升钻 编辑:程序博客网 时间:2024/06/01 07:41
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代码:
//// 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 0x3f3f3f3fconst 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;}
- UVA 455 - Periodic Strings
- UVa 455 - Periodic Strings
- UVa 455 - Periodic Strings
- UVa 455 - Periodic Strings
- UVa 455 Periodic Strings
- UVa - 455 Periodic Strings
- UVa 455 Periodic Strings
- UVa 455 - Periodic Strings
- Uva 455-periodic strings
- Uva 455-periodic strings
- UVa-455Periodic Strings
- 【Uva 455】 Periodic Strings
- UVA - 455 Periodic Strings
- UVa 455 - Periodic Strings
- Uva - 455 - Periodic Strings
- UVA - 455 Periodic Strings
- UVa 455 - Periodic Strings
- UVa 455 - Periodic Strings
- c#—细说多线程(3)
- 循环15~17
- 页面跳转 和虚拟键盘的自动隐藏
- LeetCode145-Binary-Tree-Postorder-Traversal
- BZOJ2734: [HNOI2012]集合选数|状压DP
- UVa 455 Periodic Strings
- LeetCode102-Binary-Tree-Level-Order-Traversal
- selenuim-webdriver注解之@FindBy、@FindBys、@FindAll的区别
- 剑指Offer-二维数组中的查找
- UVa 227 Puzzle
- NoSQL
- Android 高仿微信6.0主界面 切换图标变色
- 7个去伪存真的JavaScript面试题
- ios开发进阶之多线程02 NSOperation