본문 바로가기
Coding Test/LeetCode

[LeetCode] 20. Valid Parentheses [Python(파이썬)]

'파이썬 알고리즘 인터뷰'를 보고 작성한 글입니다. 😀

문제 👉 <Valid Parentheses - LeetCode>

1. 문제 (유효한 괄호)

괄호로 된 입력값이 올바른지 판별하라.

2. 풀이

스택을 이용한 풀이

3. 코드 (Python)

  • 스택을 이용한 풀이
class Solution:
    def isValid(self, s: str) -> bool:

        dic = {
            ')' : '(',
            '}' : '{',
            ']' : '['
        }

        stack = []
        for c in s:
            if c not in dic:
                stack.append(c)
            elif not stack or stack.pop() != dic[c]: 
                return False

        return not stack
  • 결과 :
방식 Status Runtime Memory Language
스택 [Accepted] 32 ms 14 MB python3

4. 코드 (JAVA)

class Solution {
    public boolean isValid(String s) {
        Stack<Character> st = new Stack<>();
        for (char c : s.toCharArray()) {
            if (c == '(' || c == '[' || c == '{') {
                st.push(c);
            } else if (c == ')') {
                if (st.size() == 0 || st.pop() != '(') return false;
            } else if (c == ']') {
                if (st.size() == 0 || st.pop() != '[') return false;
            } else if (c == '}') {
                if (st.size() == 0 || st.pop() != '{') return false;
            }
        }

        return (st.size() == 0) ? true : false;
    }
}
  • 결과 :
방식 Status Runtime Memory Language
스택 [Accepted] 1 ms 36.6 MB java


References


🏋🏻 개인적으로 공부한 내용을 기록하고 있습니다.
잘못된 부분이 있다면 과감하게 지적해주세요!! 🏋

댓글