• + 0 comments
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        while (sc.hasNext()) {
            String input=sc.next();
            boolean valid = input.length() % 2 == 0;
            Stack<Character> charStack = new Stack<>();
            for(int i=0; valid && i<input.length();i++) {
                Character c = input.charAt(i);
                if(List.of('[', '{', '(').contains(c)) {
                    charStack.push(c);
                } else {
                    if(charStack.isEmpty()) {
                        valid = false;
                        break;
                    }
                    Character p = charStack.pop();
                    if((c == '}' && p != '{') || 
                       (c == ']' && p != '[') ||
                       (c == ')' && p != '(')) {
                        valid = false;
                        break;
                    }
                }
            }
            if(!charStack.isEmpty()) valid = false;
            System.out.println(valid ? true : false);
        }
    

    }