Power Strings求非多线程解法

Power Strings只能用多线程吗
本人不会多线程题目做不过,只能暴力拆
应该没啥逻辑错误吧

s=[]
b=""
jg=[]
flag=False
while True:
    a=input()
    if a==".":
        break
    for i in range(1,len(a)):
        if len(a)%i==0:
            s.append(i)
    for i in s:
        b=a[0:i]
        flag=True
        for j in range(1,int(len(a)/i)):  
            if a[i*j:i*(j+1)]!=b:
                flag=False
                break
        if flag==True:
            break
    if i==s[-1] and flag==False:
        jg.append(1)
    else:
        jg.append(i)
for i in jg:
    print(i)

然后……(Hangup的没啥问题,我之前也遇到过但一般是测试数据多了个换行符(然后帮管理员找出了一堆坏的测试文件),就是这个超时很难受,肯定代码不够优化)

img

这里再附个题目

img

试了用正则式解,但是没有更多数据可以测试,不知道性能如何

import re
while True:
    s = input()
    if s=='.':break
    maxlen=1
    for i in range(len(s)//2):
        p='(.{%d})(\\1+)' %(i+1)
        r = re.findall(p,s)
        if r:
            for j in r:
                maxlen = max(maxlen,1+len(j[1])//(i+1))
    print(maxlen)