[코테] 리트코드 해시 테이블 3. Longest Substring Without Repeating Characters
3. Longest Substring Without Repeating Characters
문제 링크
https://leetcode.com/problems/longest-substring-without-repeating-characters/description/
문제 설명
Given a string s, find the length of the longest substring without repeating characters.
제한 사항
- 0 <= s.length <= 5 * 10^4
- s consists of English letters, digits, symbols and spaces.
입출력 예 #1
- Input : s = “abcabcbb”
- Output : 3
- Explanation : The answer is “abc”, with the length of 3.
입출력 예 #2
- Input : s = “bbbbb”
- Output : 1
- Explanation : The answer is “b”, with the length of 1.
입출력 예 #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.
class Solution:
def lengthOfLongestSubstring(self, s: str) -> 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
Comments