eolymp
bolt
Try our new interface for solving problems
Problems

Parentheses Balance

published at 3/5/12, 10:32:40 pm

можно пример теста№7 ?

awpris replied:
нет
published at 3/10/12, 12:46:13 pm

какое количество тестов(n)?

awpris replied:
25
published at 4/7/12, 5:45:09 pm

в примере может быть пустая строка?

published at 12/14/12, 3:59:08 pm

why test 10 wrong answer?

published at 9/27/14, 10:17:47 pm

Test case 10 is empty string

published at 9/30/14, 3:27:35 pm

> VRudenko > >"если A и B правильны, то AB правильно > если A правильно, то (A) и [A] правильны" > > Что это значит? Можете привести пример? > A - [()], B - [(())], например. 1) 2 последовательности правильны. AB - [()][(())] - тоже правильна. 2) (A)=([()]) - правильна. [A]=[[()]] - правильна.

published at 1/29/16, 11:44:06 am

Присутній тест з порожнім рядком?

published at 7/31/16, 9:06:59 pm

что значит оно является пустым если A и B правильны, то AB правильно если A правильно, то (A) и [A] правильны?

published at 7/31/16, 9:12:05 pm

хотябы сказали что означает А B

published at 7/31/16, 9:16:36 pm

who knows what mean if A and B correct it means AB correct too and e.t.c.

published at 4/3/24, 2:16:58 am

import java.util.Scanner; import java.util.Stack;

public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in);

    int n = scanner.nextInt();
    scanner.nextLine(); 

    for (int i = 0; i < n; i++) {
        String expression = scanner.nextLine();
        boolean isCorrect = checkExpression(expression);
        System.out.println(isCorrect ? "Yes" : "No");
    }
}

public static boolean checkExpression(String expression) {
    Stack<Character> stack = new Stack<>();

    for (char c : expression.toCharArray()) {
        if (c == '(' || c == '[') {
            stack.push(c);
        } else if (c == ')' || c == ']') {
            if (stack.isEmpty()) {
                return false;
            }

            char top = stack.pop();

            if ((c == ')' && top != '(') || (c == ']' && top != '[')) {
                return false; 
            }
        }
    }

    return stack.isEmpty(); 
}

}