Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const checkBalanced = (s, ...bracketsArray) => { // первый аргумент - проверяемая строка, остальные - строки из пар скобок
- let stack = []; // стек для открывающихся скобок
- let isBalanced = true;
- for (let char of s) {
- if (!isBalanced) {
- break;
- }
- // находим необходимую пару скобок
- let brackets = bracketsArray.find(b => char == b[0] || char == b[1]);
- if (char == brackets[0]) { // если скобка открывающаяся, то записываем в стек
- stack.push(char);
- }
- else if (stack[stack.length - 1] == brackets[0]) { // извлекаем из стека скобку, если текущая её закрывает
- stack.pop();
- }
- else { // иначе баланс строк нарушен
- isBalanced = false;
- }
- }
- return isBalanced && !stack.length; // если в стеке остались записи, то баланс нарушен
- }
- console.log(checkBalanced('({(){}()})()', '()','{}'));
Add Comment
Please, Sign In to add comment