Algorithm/Python

[LeetCode] 20. Valid Parentheses

🥭맹2 2021. 6. 6. 16:48

1. 문제

https://leetcode.com/problems/valid-parentheses/

 

Valid Parentheses - LeetCode

Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.

leetcode.com

2. 접근 방법

stack의 기본 문제입니다요

 

주어진 문자열을 하나씩 확인해가면서 만약에 여는 괄호라면 stack에 담고,

닫는 괄호가 나올 경우 이와 쌍을 이루는 여는 괄호가 stack의 맨 뒤에 있다면 ok,

아니라면 false를 반환합니다.

 

문자열을 모두 순회한 후,

stack에 문자가 남아있다면 -> false

stack이 비었다면 -> true

3. 코드

python

class Solution:
    def isValid(self, s: str) -> bool:
        stack = []
        table = {
            ')': '(',
            '}': '{',
            ']': '['
        }
        
        for char in s:
            if char not in table:
                stack.append(char)
            elif not stack or table[char] != stack.pop():
                return False
        return len(stack) == 0

4. 마치며

연결리스트만 하다가 스택으로 넘어오니까 편하네요 후 ~!

편-안

'Algorithm > Python' 카테고리의 다른 글

[LeetCode] 225. Implement Stack using Queues  (0) 2021.06.06
[LeetCode] 739. Daily Temperatures  (0) 2021.06.06
[백준 2468] 안전영역  (0) 2021.06.06
[백준 7569] 토마토  (0) 2021.06.06
[백준 2644] 촌수계산  (0) 2021.06.05