- 문제 링크: https://leetcode.com/problems/valid-parentheses/

- 난이도: Easy

 

bracket 짝을 맞추는 문제인데, stack을 이용한다

여는 bracket이 나오면 스택에 넣고, 닫는 bracket이 나오면 스택에서 하나 pop 해온다. 만약 그전에 스택이 비어 있으면 짝이 안맞으니 False 반환한다. 꺼내온게 짝이 맞지 않는다면 False.

마지막으로 stack에 뭔가 남아있다면 역시 False 반환

class Solution(object):
    def isValid(self, s):
        stack = []
        pairs = {
            '(': ')',
            '{': '}',
            '[': ']'
        }
        for bracket in s:
            if bracket in pairs:  # opening
                stack.append(bracket)
            elif len(stack) == 0 or bracket != pairs[stack.pop()]:
                return False

        return len(stack) == 0
반응형