forked from tech-cow/leetcode
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path3.py
More file actions
25 lines (21 loc) · 657 Bytes
/
3.py
File metadata and controls
25 lines (21 loc) · 657 Bytes
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
class Solution(object):
def lengthOfLongestSubstring(self, s):
"""
:type s: str
:rtype: int
"""
#Edge
if not s:
return 0
start, max_length, hash = 0, 0, {}
for i, num in enumerate(s):
# Need to have the following condition:
# start <= hash[num] to avoid edge case such as :
# "tmmzuxt"
if num in hash and start <= hash[num]:
#update pointer
start = hash[num] + 1
else:
max_length = max(max_length, i - start + 1)
hash[num] = i
return max_length