leetcode python 003

## 给定一个字符串,求其最长无重复的子字符串
##给定“abcabcbb”,答案是“abc”,长度为3。
##给定“bbbbb”,答案是“b”,长度为1。
##鉴于“pwwkew”,答案是“wke”,长度为3。
import time
import random
import string
x,l=1000,[]
for i in range(x):
    l.append(''.join(random.sample(string.ascii_letters + string.digits,1)))
s=''.join(l)
t=time.time()
q,ll,l='',[],0
for i in s:
    if q.find(i)<0:
        q='%s%s'%(q,i)
    else:
        if len(q)>=l:
            ll.append(q)
            l=len(q)
        q=('%s%s'%(q,i))[q.find(i)+1:]
lll=[]
for i in ll:
    if len(i)==l:
        lll.append(i)
t=time.time()-t
print('%s 元素用时 %s s'%(x,t))
print(lll,l)



----蚂蚁不在线
原文地址:https://www.cnblogs.com/offline-ant/p/9309489.html