본문 바로가기

Algorithm/LeetCode

[Java] LeetCode 20번 Valid Parentheses

Stack을 이용해서 쉽게 해결이 가능하다. 닫는 괄호가 나왔을 때, stack에서 pop한 값이 짝을 이루는 괄호가 아니라면 잘못된 괄호 쌍이 된다. 

class Solution {
    public boolean isValid(String s) {
        Deque<Character> stack = new LinkedList<>();
        boolean result = true;
        for (int i = 0; i < s.length(); i++) {
            Character c = s.charAt(i);
            if (c == '(' || c == '{' || c == '[') {
                stack.push(c);
            } else {
                if (stack.size() == 0) {
                    result = false;
                    break;
                }
                Character popC = stack.pop();
                if ((c == ')' && popC != '(')) {
                    result = false;
                    break;
                } else if (c == '}' && popC != '{') {
                    result = false;
                    break;
                } else if (c == ']' && popC != '[') {
                    result = false;
                    break;
                }
            }
        }
        if (stack.size() != 0) {
            result = false;
        }
        return result;
    }
}
반응형