""" 3. Longest Substring Without Repeating Characters Difficulty: Medium https://leetcode.com/problems/longest-substring-without-repeating-characters/ ────────────────────────────────────────────────── Given a string s, find the length of the longest substring without duplicate characters. Example 1: Input: s = "abcabcbb" Output: 3 Explanation: The answer is "abc", with the length of 3. Note that "bca" and "cab" are also correct answers. Example 2: Input: s = "bbbbb" Output: 1 Explanation: The answer is "b", with the length of 1. Example 3: Input: s = "pwwkew" Output: 3 Explanation: The answer is "wke", with the length of 3. Notice that the answer must be a substring, "pwke" is a subsequence and not a substring. Constraints: • 0 <= s.length <= 10^5 • s consists of English letters, digits, symbols and spaces. """ class Solution: def lengthOfLongestSubstring(self, s: str) -> int: left = 0 ans = 0 window = set() for right, c in enumerate(s): while c in window: window.remove(s[left]) left += 1 window.add(c) ans = max(ans, right - left + 1) return ans