LeetCode 20. Valid Parentheses (Java)

Kim Yongbin·2024년 4월 17일
post-thumbnail

문제

Valid Parentheses - LeetCode

Code

class Solution {
        public boolean isValid(String s) {
        Deque<Character> deque = new ArrayDeque<>();
        Map<Character, Character> parenthesesMap = new HashMap<>() {
            {
                put(')', '(');
                put('}', '{');
                put(']', '[');
            }
        };

        for (char c : s.toCharArray()) {
            if (!parenthesesMap.containsKey(c)) {
                deque.push(c);
            } else {
                if (deque.isEmpty() || parenthesesMap.get(c) != deque.pop()) {
                    return false;
                }
            }
        }
        return deque.isEmpty();
    }
}

  1. parenthesesMap에 닫힘 괄호(key): 열림 괄호(value)의 형태로 저장하였다.
  2. 주어진 String을 하나씩 보면서 열림 괄호라면 stack에 넣고 아니라면 stack의 마지막 원소를 pop하여 비교하였다.
profile
반박 시 여러분의 말이 맞습니다.

0개의 댓글