- Notifications
You must be signed in to change notification settings - Fork 306
/
Copy path3.py
25 lines (21 loc) · 657 Bytes
/
3.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
classSolution(object):
deflengthOfLongestSubstring(self, s):
"""
:type s: str
:rtype: int
"""
#Edge
ifnots:
return0
start, max_length, hash=0, 0, {}
fori, numinenumerate(s):
# Need to have the following condition:
# start <= hash[num] to avoid edge case such as :
# "tmmzuxt"
ifnuminhashandstart<=hash[num]:
#update pointer
start=hash[num] +1
else:
max_length=max(max_length, i-start+1)
hash[num] =i
returnmax_length