周期串Uva455 P37 3-4

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

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

最开始以为是求出现次数最小的那个字符;

后来想一想是真的不对;

然后看着数据不大, 就用暴力枚举的方法;

求出最小的周期,那么就是从最小的开始枚举,也就是长度为1, 再judge;

 #include<bits/stdc++.h>
#define clr(x) memset(x, 0, sizeof(x)) #define LL long long using namespace std; const int INF = 0x3f3f3f3f; const int maxn = ; char str[]; char s[]; int main() { int T; cin >> T; while(T--) { clr(str); cin >> str; int len = strlen(str); for(int i = ; i < len; i++) { if(len % (i+) != ) continue; int cnt = , flag = ; clr(s); for(int j = ; j <= i; j++ ) { s[cnt++] = str[j]; } //puts(s); int tmp = i + ; for(int k = ; k < len / (i + ) - ; k++) { for(int l = ; l < cnt; l++) { //printf("%c %c\n", s[l], str[tmp]); if(s[l] != str[tmp++]) { flag = ; break; } } } if(flag) { cout << i + << endl; if(T) cout << endl; break; } //puts("_________"); } } return ; }
阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

“周期串Uva455 P37 3-4” 的相关文章

extern变量不能为static

static变量,即使在其它文件被声明为extern,链接器也不会找到他...

Python关于面向对象的问题有哪些 - 编程语言

这篇“Python关于面向对象的问题有哪些”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Python关于面向对象的问题有哪些”文章吧。...

Vue.js中的会话数据怎么使用 - web开发

这篇文章主要介绍了Vue.js中的会话数据怎么使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Vue.js中的会话数据怎么使用文章都会有所收获,下面我们一起来看看吧。 Vue.js中的会话概述会话是Web应用...

Python内置文件操作有哪些 - 编程语言

这篇文章主要讲解了“Python内置文件操作有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python内置文件操作有哪些”吧! 1、创建和打开文件想要操作文件需要先创建或代开指定文件并...

Ubuntu

所下载的软件包一般放在/var/cache/apt/archives/目录下,一次更新后,往往会产生几百MB的临时文件。  但是,一旦因为某种原因,需要重装系统的时候,难道那么多的文件又要重新下载吗?要是在碰上蜗牛似的网速。刚才已经说过,/var/cache /apt/archives/ 目录存放的...

信用卡、贷记卡、储蓄卡和借记卡

信用卡分为贷记卡,准贷记卡。贷记卡(Credit Card)是指发卡银行给予持卡人一定的信用额度,持卡人可在信用额度内先消费,后还款的信用卡。贷记卡是真正意义上的信用卡,具有信用消费、转账结算、存取现金等功能。它具有以下特点:先消费后还款,享有免息缴款期(最长可达56天),并设有最低还款额,客户出现...