我有以下字符串_ ='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中实现它。有没有任何例子或推荐。