Python

YONAGI 发表于 1个月前 · 关联问题 周期串

a=int(input()) for i in range(a): max1=0 flag=0 space=input() list1=list(map(str,input())) for j in range(len(list1)): max1=0 str1=''.join(list1[0:j+1 if j+1<len(list1) else j]) #从右侧逐个截断(若有周期,从左右开始都一样)(方便起见,将只有字符串本身是一个周期的情况放到最后讨论) str2=str1 str3='' for i in range(len(list1)):#寻找最大可分次数max1 str3+=str2 max1+=1 if str3==''.join(list1): flag=1 break elif len(str3)>len(list1): break if flag==1: break if flag==0: max1=1#(若找不到除字符串本身以外的周期串,则最大可分次数为1) print(len(list1)//max1,end="\n\n")