UVA455

来源:互联网 发布:java源代码文件调试 编辑:程序博客网 时间:2024/06/05 03:03

/** Copyright (c) 2016, 安徽大学计算机科学与技术学院* All rights reserved.* 作 者:  杨磊* 完成日期:2016 年 12 月 05 日* 问题描述:* 求一组字符串的最小循环节* 思路:由于是循环的,所以从长度的最小约数k开始遍历。*      如果s[i]==s[i%k],则k就是最小循环单位。*/#include<stdio.h>#include<string.h>#include<ctype.h>#define max 105char s[max];int main(){    int n, len;    scanf("%d", &n);    while (n--)    {   scanf("%s",s);        len = strlen(s);        int i,j;        for ( i = 1; i <= len;i++)        if (len%i == 0)        {            int flag = 1;            for ( j = i; j < len;j++)            if (s[j] != s[j%i])            {                flag = 0;                break;            }            if (flag)            {                printf("%d\n", i);                if (n)                    putchar('\n');                break;            }        }    }    return 0;}


0 0
原创粉丝点击