[LeetCode] Valid Parentheses Java

dustle·2023년 6월 26일
1

Valid Parentheses

열리는 괄호와 닫히는 괄호가 짝지어지는지 확인하는 문제입니다.
열리는 괄호와 닫히는 괄호를 미리 Map 에 넣어두고
열리는 괄호인 경우 Stack 에 넣고 닫히는 괄호인 경우 Map에서 검색하여 Stack 에 반대 괄호가 존재하는지 확인했습니다.

import java.util.*;

class Solution {
    Stack<String> stack = new Stack<>();
    Map<String, String> map = new HashMap<String, String>() {
            {
                put("{", "}");
                put("(", ")");
                put("[", "]");
            }
            
        };

    public boolean isValid(String s) {
        String[] arr = s.split("");
        
        if(!map.containsKey(arr[0])) {
            return false;
        }

        for(String tmp : arr) {
            if(map.containsKey(tmp)) {
                stack.push(tmp);
                continue;
            }
            else if(stack.isEmpty()){
                return false;
            }
            
            if(!stack.isEmpty()) {
                String a = stack.pop();

                if(!tmp.equals(map.get(a))) {
                    return false;
                }
            }
        }
        
        if(stack.isEmpty())return true;

        return false;
    }
}

0개의 댓글