philosyang.com

3. Longest Substring Without Repeating Characters: revisit

Let’s tackle this again.

 1class Solution:
 2    def lengthOfLongestSubstring(self, s: str) -> int:
 3        # intuition: two pointer / sliding window
 4        result = 0
 5        l = 0
 6        r = -1
 7        n = len(s)
 8        last_seen = {}
 9
10        while r < n - 1:
11            r += 1
12            ch = s[r]
13            if ch in last_seen and last_seen[ch] >= l:
14                l = last_seen[ch] + 1
15
16            last_seen[ch] = r
17            result = max(result, r - l + 1)
18
19        return result

#Neetcode150 #Sliding-Window #Python