powerstr

来源:互联网 发布:短租用什么软件 编辑:程序博客网 时间:2024/06/05 03:49

Description

给定两个字符串a和b,我们可以定义一些操作:a*b为将字符串a和字符串b连接起来,比如a= "aoe",b= "jkw",那么a*b= "aoejkw"。进一步,我们可以有指数操作,a^0= "", a^1=a, a^2=a*a, a^n=a*(a^(n-1))=a*a*…*a (n个a)
现在给你一个字符串,你可以将它看成是a^n的形式,比如字符串"abababab",可以认为是"abab"^2, 也可以是"abababab"^1,还可以是"ab"^4。
现在问题是,给定的字符串,我们想让它变成a^n中的n达到最大,那么这个n最大是多少?例如:"abababab"最大的n是4。

Input

第一行,一个整数m,表示有m个字符串。
接下来m行每行输入一个只含小写字母的字符串。

Output

输出m行,对于每行输出相应字符串的最大n。

Sample Input

3abcdeaaaaaaabababab

Sample Output

164

Data Constraint

30%的数据:字符串的长度≤1000;
100%的数据:字符串的长度≤1000000, m≤10,字符串内只含小写字母。
var        a,b,c:longint;        s,u,s1:ansistring;        t:char;        p:boolean;function pd:boolean;var        i:longint;        t,e:ansistring;begin        t:=copy(s1,1,b-1);        for i:=1 to (length(s)div(b-1)) do        begin                e:=copy(s1,(b-1)*(i-1)+1,b-1);                if e<>t then                        exit(false);        end;        exit(true);end;begin        //assign(input,'1.in');reset(input);        readln(a);        for c:=1 to a do        begin                readln(s);                t:=s[1];                p:=true;                for b:=2 to length(s) do                begin                        if (length(s) mod (b-1)=0)and(s[b]=t) then                        begin                                s1:=s;                                if pd=true then                                begin                                        writeln(length(s)div(b-1));                                        p:=false;                                        break;                                end;                        end;                        {if b=((length(s)+1)div 2) then                        begin                                writeln(1);                                break;                        end; }                end;                if p=true then                        writeln(1);        end;        //close(input);end.

0 0
原创粉丝点击