3. Longest Substring Without Repeating Characters
Given a string s, find the length of the longest substring without duplicate characters
Hash TableExample 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^5sconsists of English letters, digits, symbols and spaces.
Approach
Solution
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