본문 바로가기

알고리즘/릿코드 문제풀이

LeetCode Valid Parentheses(유효한 괄호)

728x90

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

 

Valid Parentheses - LeetCode

Can you solve this real interview question? Valid Parentheses - Given a string s containing just the characters '(', ')', '{', '}', '[' and ']', determine if the input string is valid. An input string is valid if: 1. Open brackets must be closed by the sam

leetcode.com

문제 분석

괄호로 이루어진 문자열이 주어졌을때 해당 괄호가 올바르게 되어있는지 판별하는 문제

 

아이디어

  • 전형적인 stack 활용문제
  • 여는 괄호가 나올시 해당하는 닫는 괄호를 stack에 저장
  • 닫는 괄호가 나올때 stack이 비어있는 상태이거나 stack 맨위 값과 해당 닫는 괄호가 다르면 False
  • 반복문을 모두 탈출하고 stack이 비어있으면 True

정답코드

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

'알고리즘 > 릿코드 문제풀이' 카테고리의 다른 글

LeetCode Two Sum(Python)  (0) 2023.03.01