leetcode-3-longest substring without repeating characters

题目出自: 3. Longest Substring Without Repeating Characters

源码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
class Solution(object):
def lengthOfLongestSubstring(self, s):
"""
:type s: str
:rtype: int
"""
if not s:
return 0
pos = {}
max_len = 0
start = 0
# start ~ index-1 一定是不重复的
for index, e in enumerate(s):
if e not in pos or pos[e] < start:
pos[e] = index
else:
max_len = max(index-start, max_len) # 当前不重复的长度: index-1-(start-1)
start = pos[e] + 1
pos[e] = index
max_len = max(index-start+1, max_len) # 当前不重复的长度 index - (start-1)
return max_len