Условие задачи: дана строка, содержащая только символы '(', ')', '{', '}', '[' и ']', определить, является ли последовательность скобок правильной. Последовательность скобок считается правильной, если: Примеры: Вход: "()", Выход: true Вход: "()[]{}", Выход: true Вход: "(]", Выход: false Вход: "([)]", Выход: false Вход: "{[]}", Выход: true Решение: import java.util.Stack;
class Solution {
public boolean isValid(String s) {
Stack<Character> stack = new Stack<>();
for(char c : s.toCharArray()) {
if(c=='(' || c=='{' || c=='[') { // если символ - открывающая скобка, помещаем его в стек stack.push(c);
} else if(!stack.isEmpty() && ((c==')' && stack.peek()=='(') || (c=='}' && stack.peek()=='{') || (c==']' && stack.peek()=='['))) { // если символ - закрывающая скобка и она соответствует верхней скобке в стеке, удаляем верхнюю скобку из стека stack.pop();
} else { // иначе последовательность неправильная