3. Longest Substring Without Repeating Characters

MediumStringSliding WindowHash SetTimeO(n)SpaceO(min(n, k))
longest so far: 0
a0
b1
c2
b3
LR
seen{}
window 0..0
right → 0 (char 'a')expand
Frame 1 / 20
1class Solution:
2 def lengthOfLongestSubstring(self, s):
3 longest = 0
4 left = 0
5 seen = set()
6 for right in range(len(s)):
7 char = s[right]
8 while char in seen:
9 seen.remove(s[left])
10 left += 1
11 seen.add(char)
12 longest = max(longest, right - left + 1)
13 return longest