3. Longest Substring Without Repeating Characters
Medium LeetCodeGiven a string s, find the length of the longest substring without repeating characters.
Example 1:
Input:
s = "abcabcbb"
Output:3
Explanation: The answer is"abc", with the length of3.
Example 2:
Input:
s = "bbbbb"
Output:1
Explanation: The answer is"b", with the length of1.
Example 3:
Input:
s = "pwwkew"
Output:3
Explanation: The answer is"wke", with the length of3.
Constraints:
0 <= s.length <= 5 * 10^4sconsists of English letters, digits, symbols and spaces.
How to solve the problem
- Sliding Window
python
class Solution:
def lengthOfLongestSubstring(self, s: str) -> int:
left = 0
substring = set()
result = 0
for right in range(len(s)):
while s[right] in substring:
substring.remove(s[left])
left += 1
substring.add(s[right])
length = right - left + 1
result = max(length, result)
return resultComplexity
- Time Complexity:
O(n)- Each character is visited at most twice (once by right pointer, once by left pointer) - Space Complexity:
O(min(m, n))- Wheremis the size of the character set andnis the length of string. The set stores at mostmin(m, n)characters
Comments
No comments yet. Be the first to comment!