feat(work): add longest‑substring‑without‑repeating‑characters solution

This commit is contained in:
Prad Nukala
2026-08-25 13:18:35 -04:00
parent bc2269d9dd
commit 217e899281
@@ -0,0 +1,56 @@
"""
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
seen = set()
for right, c in enumerate(s):
while c in seen:
seen.remove(s[left])
left += 1
seen.add(c)
ans = max(ans, right - left + 1)
return ans