Problem 010——UVa 455 - Periodic Strings

来源:互联网 发布:货物进出库软件 编辑:程序博客网 时间:2024/05/16 14:52

 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

1HoHoHo

Sample Output

2



#include"stdio.h"#include<math.h>#include<string.h>#include<stdlib.h>#include<ctype.h>char inp[100];int main(){    int N;    scanf("%d", &N);    while(N--)    {        scanf("%s", inp);        int len = strlen(inp);        int zq,i;        for ( zq = 1; zq <= len; zq++)            if (len % zq == 0)            {                int pd = 1;                for ( i = zq; i < len; i++)                    if (inp[i] != inp[i % zq])                    {                        pd = 0;                        break;                    }                if (pd)                {                    printf("%d\n", zq);                    break;                }            }        if(N>0)            printf("\n");    }    return 0;}



0 0
原创粉丝点击