Contiguos子串效率

时间:2015-08-10 05:47:27

标签: python algorithm data-structures big-o trie

我有以下字符串_ ='abbabbababbab' 我希望减少到abb abbab2 我有以下代码:

def substr(string):
    j=1
    a=set()
    while True:
        for i in range(len(string)-j+1):
            a.add(string[i:i+j])
        if j==len(string):
            break
        j+=1
        #string=string[1:]
    return a

def prnt(seta):
    l=list(seta)
    l.sort(key=lambda(x):len(x))
    print l
    ## return l # if you want to return this object too

结果:

[['abb', 'abbab', 'abbab'], ['abbabba', 'bab', 'bab']]

上面的代码完成了工作,但时间是n ^ 2,空间是2 ^ n。我已经看过Trie数据结构但不确定如何在Trie中实现它。有没有任何例子或推荐。

0 个答案:

没有答案