sy1214ei 님의 블로그

[Leet Code] 3. Longest Substring Without Repeating Characters 본문

[Coding]

[Leet Code] 3. Longest Substring Without Repeating Characters

sy1214ei 2024. 12. 16. 04:08
level : Medium
class Solution:
    def lengthOfLongestSubstring(self, s: str) -> int:
        """
        슬라이딩 윈도우
        - 부분 문자열에 중복 문자 X: end += 1
        - 부분 문자열에 중복 문자 O: start += 1
        """
        max_len = 0
        start, end = 0, 0
        chars = set()

        while end < len(s):
            if s[end] in chars: # 부분 문자열에 중복 문자 O
                chars.remove(s[start])
                start += 1
            else: # 부분 문자열에 중복 문자 X
                chars.add(s[end])
                max_len = max(end-start+1, max_len)
                end += 1
        
        return max_len