ВопросSenior2gis21 просмотр

/*Дана строка, необходимо реализовать функцию для проверки корректности указания скобочек. Каждой открывающейся скобочке должна соответствовать закрывающаяся. Открывающаяся и закрывающаяся скобочки должны идти в верном порядке. Типы скобочек: "{", "}", "(", ")", "[", "]". Input: "([]){}[(()())()]" Результат: true Input: "[(])" Результат: false Потому что скобочки 2 и 3 указаны неверно, закрывающая ']' встречается ранее закрывающей '('*/ public boolean check(String s){ Deque<Character> stack = new ArrayDeque<>(); Map<Character, Character> map = Map.of( ')', '(', ']', '[', '}', '{' ) // ((( for( char c : s.toCharArray()){ if(map.containsValue(c)){ stack.push(c); } else if(map.containsKey(c)){ if( stack.isEmpty() || stack.pop() != map.get(c)){ return false; } } } return stack.isEmpty(); }