怎样解决下列Python问题,求大佬指点

定义函数funG (s),返回字符串s中重复的子字符串的最大长度

def funG(s):
    for i in range(len(s)-1,0,-1):
        a = []
        for j in range(0, len(s)-i+1):
            a.append(s[j:j+i])
        if len(a)!=len(set(a)):
            return i
    
funG('ababababa')
    

 

 

>>> def funG(s):
    c_max = 1 if len(s) else 0
    for i in range(len(s)-1):
        next = i+1
        for j in range(s[next:].count(s[i])):
            k = s[next:].index(s[i]) + next
            c = 0
            for u,v in zip(s[i:],s[k:]):
                if u == v:
                    c += 1
                else:
                    break
            c_max = max(c, c_max)
            next = k+1
    return c_max

>>> funG('ababababa')
7
>>> funG('abc123ababababc123ababab')
12

 


def funG(s):
    for i in range(len(s)-1,0,-1):
        a = []
        for j in range(0, len(s)-i+1):
            a.append(s[j:j+i])
        if len(a)!=len(set(a)):
            return i
    
funG('abc123ababababc123ababab')