알고리즘 파트-2 : 대괄호 검증

안녕 얘들아, 알고리즘 시리즈를 계속하자...
오늘은 유효한 대괄호 문제를 해결하는 방법을 보여 드리겠습니다. 이 문제를 먼저 논의해 봅시다.

이 문제에서 우리는 문자열 형태의 괄호를 받았습니다. 우리는 그것들이 유효한지 알아내야 합니다.

예시

{([])}    : Valid
{(}}      : Invalid
{(}       : Invalid
{         : Invalid
}         : Invalid
{([)]}    : Invalid 


솔루션을 살펴보겠습니다.

 public boolean validBrackets(String brackets) {
        char[] arr = brackets.toCharArray();

        Stack<Character> stack = new Stack<>();
        for (Character ch : arr) {
            if (ch == '(' || ch == '{' || ch == '[') {
                stack.push(ch);
            } else {
                if (stack.isEmpty()) {
                    return false;
                } else {
                    if (
                       ch == ')' && stack.peek() == '(' || 
                       ch == '}' && stack.peek() == '{' || 
                       ch == ']' && stack.peek() == '['
                      ){
                        stack.pop();
                    }else{
                        return false;
                    }
                }
            }

        }
        return stack.isEmpty();
    }


이 게시물이 도움이 되었기를 바랍니다. 감사합니다 ❤.

좋은 웹페이지 즐겨찾기