我的函数效率低下,占用了很多时间-Python

我的函数效率低下,占用了很多时间-Python,python,Python,我试图解决的问题是: 给定一个字符串,在每个可能的点将该字符串拆分为两个子字符串。最右边的子字符串是后缀。字符串的开头是前缀。确定每个前缀和原始字符串之间公共前缀的长度。求和并返回常用前缀的长度。返回一个数组,其中每个元素“i”是字符串“i”的和 我的解决方案: def commonPrefix(l): size=len(l) #Finding number of strings sumlist=[] #Initializing list that'll store sum

我试图解决的问题是:

给定一个字符串,在每个可能的点将该字符串拆分为两个子字符串。最右边的子字符串是后缀。字符串的开头是前缀。确定每个前缀和原始字符串之间公共前缀的长度。求和并返回常用前缀的长度。返回一个数组,其中每个元素“i”是字符串“i”的和

我的解决方案:

def commonPrefix(l):

    size=len(l)  #Finding number of strings
    sumlist=[]  #Initializing list that'll store sums
    for i in range(size):
        total=0  #Initializing total common prefixes for every string
        string=l[i]  #Storing each string in string
        strsize=len(string)  #Finding length of each string
        for j in range(strsize):
            suff=string[j:]   #Calculating every suffix for a string
            suffsize=len(suff)  #Finding length of each suffix
            common=0   #Size of common prefix for each length
            for k in range(suffsize):
                if(string[k]==suff[k]):
                    common=common+1
                else:
                    break   #If characters at equal positions are not equal, break
            total=total+common   #Update total for every suffix
        sumlist.append(total)   #Add each total in list
    return sumlist   #Return list

我的解决方案占用了很多时间,我需要帮助进行优化。

这是一个关于“确定每个前缀和原始字符串之间的公共前缀长度”的问题?简单地确定这个前缀的长度?听起来好像你在试图发现后缀树。@tripleee示例:是的,看起来像后缀树。请参阅,例如,尝试分析您的代码,以便找出哪些代码比较慢。分析器为您提供逐行数据。