[leetcode] 3. Longest Substring Without Repeating Characters
2022. 12. 19. 12:11ㆍ노트/Algorithm : 알고리즘
Given a string s, find the length of the longest
without repeating characters.
Example 1:
Input: s = "abcabcbb"
Output: 3
Explanation: The answer is "abc", with the length of 3.
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 <= 5 * 104
- s consists of English letters, digits, symbols and spaces.
class Solution(object):
def lengthOfLongestSubstring(self, s):
"""
:type s: str
:rtype: int
"""
used = {}
max_length = start = 0
for index, char in enumerate(s):
# 이미 등장했던 문자라면 'start' 위치 갱신
if char in used and start <= used[char]:
start = used[char] + 1
else: # 최대 부분 문자열 길이 갱신
max_length = max(max_length, index - start +1)
# 현재 문자 위치 삽입
used[char] = index
return max_length
'노트 > Algorithm : 알고리즘' 카테고리의 다른 글
[leetcode] 200. Number of Islands (0) | 2023.01.02 |
---|---|
[leetcode] 347. Top K Frequent Elements (0) | 2022.12.20 |
[leetcode] 771. Jewels and Stones (0) | 2022.12.09 |
[leetcode] 706. Design HashMap (1) | 2022.12.08 |
[leetcode] 23. Merge k Sorted Lists (0) | 2022.12.06 |