Algorithm/problems

Leetcode 3. Longest Substring Without Repeating Characters

수밈 2024. 8. 8. 17:31

### 문제이해

문자열 중에서 subarray가 가장 긴 문자를 찾는 방법.

### 생각해본 방법

슬라이딩 윈도우 기법이 떠올랐는데, 간단히 스택으로 먼저 풀어봤다.
슬라이딩 윈도우 기법은 left, right 를 잡고 left, right 값을 비교하면서 진행하는 방식.

### Try 1. stack

from collections import deque
class Solution:
    # stack 으로 하는건가,, stack 을 이용해서 while pop 돌리기
    def lengthOfLongestSubstring(self, s: str) -> int:
        result = 0
        stack = deque()
        for i in s:
            if not stack:
                stack.append(i)
            else:
                while i in stack:
                    stack.popleft()
                stack.append(i)
            result = max(len(stack), result)
        return result

성공!