zoukankan      html  css  js  c++  java
  • UVA455

    如果一个字符串可以被某个长度为k的字符串重复多次得到,则称这个字符串的周期为k。例如,字符串“abcabcabcabc”以3为周期(当然,他也以6、12等等为周期)。 

    现在请你编写一个程序,求出任一长度不超过80的字符串的最小周期。

    Input

    输入首先是一个整数n,代表有n组数据。

    每组数据占一行,是一个长度不超过80的字符串。
    两组相邻的输入之间有一个空行。

    Output

    每组数据在一行内输出一个整数k,代表该字符串的最小周期。
    两组相邻的输出之间应当有一个空行。

    Sample Input

    2
    
    abcabcabc
    
    HoHoHo
    

    Sample Output

    3
    
    2
    #include <iostream>
    #include <cstdlib>
    #include <cstring>
    #include <cstdio>
     
    using namespace std;
     
    char str[104];
     
    int main()
    {
    	int n;
    	while (~scanf("%d",&n))
    	while (n --) {
    		scanf("%s",str);
    		int len = strlen(str); 
    		for (int k,i = 1 ; i <= len ; ++ i)
    			if (len%i == 0) {
    				for (k = i ; k < len ; ++ k)
    					if (str[k] != str[k%i])
    						break;
    				if (k == len) {
    					printf("%d
    ",i);
    					break;
    				}
    		}
    		if (n) printf("
    ");
    	}
    	return 0;
    }
  • 相关阅读:
    Visio2019专业版激活方法
    I2C总线协议
    latch-up和Antenna-effect
    读--数字集成电路物理设计
    数字IC设计流程与工具
    读--FPGA设计指导原则
    读--数字集成电路设计与实现
    FIFO
    半导体存储器
    触发器
  • 原文地址:https://www.cnblogs.com/aerer/p/9931025.html
Copyright © 2011-2022 走看看