题目:
class Solution:
def lengthOfLongestSubstring(self, s):
if s:
resultList=[]
length=[]
item=0
i=0
while i<len(s):
if s[i] in resultList:
resultList.clear()
i=item+1
item=i
resultList.append(s[i])
length.append(len(resultList))
i+=1
return max(length)
return 0
从后往前
class Solution:
def lengthOfLongestSubstring(self, s: str) -> int:
if s == '':
return 0
if len(s) == 1:
return 1
def find_left(s, i):
tmp_str = s[i]
j = i - 1
while j >= 0 and s[j] not in tmp_str:
tmp_str += s[j]
j -= 1
return len(tmp_str)
length = 0
for i in range(0, len(s)):
length = max(length, find_left(s, i))
return length
700ms
哈希
class Solution:
def lengthOfLongestSubstring(self, s):
ans=0
left=0
right=0
hashset=set([])
n=len(s)
while left<n:
while right<n and s[right] not in hashset:
hashset.add(s[right])
ans=max(ans,right-left+1)
right+=1
hashset.remove(s[left])
left+=1
if n-left <ans:
break
return ans