蚂蚁不在线

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)



posted on 2018-07-14 14:09  蚂蚁不在线  阅读(139)  评论(0编辑  收藏  举报

导航