Parentheses Balance
можно пример теста№7 ?
какое количество тестов(n)?
в примере может быть пустая строка?
why test 10 wrong answer?
Test case 10 is empty string
> VRudenko > >"если A и B правильны, то AB правильно > если A правильно, то (A) и [A] правильны" > > Что это значит? Можете привести пример? > A - [()], B - [(())], например. 1) 2 последовательности правильны. AB - [()][(())] - тоже правильна. 2) (A)=([()]) - правильна. [A]=[[()]] - правильна.
Присутній тест з порожнім рядком?
что значит оно является пустым если A и B правильны, то AB правильно если A правильно, то (A) и [A] правильны?
хотябы сказали что означает А B
who knows what mean if A and B correct it means AB correct too and e.t.c.
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();
}
}