Guest User

Untitled

a guest
Nov 20th, 2017
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.05 KB | None | 0 0
  1. const checkBalanced = (s, ...bracketsArray) => { // первый аргумент - проверяемая строка, остальные - строки из пар скобок
  2. let stack = []; // стек для открывающихся скобок
  3. let isBalanced = true;
  4.  
  5. for (let char of s) {
  6. if (!isBalanced) {
  7. break;
  8. }
  9. // находим необходимую пару скобок
  10. let brackets = bracketsArray.find(b => char == b[0] || char == b[1]);
  11.  
  12. if (char == brackets[0]) { // если скобка открывающаяся, то записываем в стек
  13. stack.push(char);
  14. }
  15. else if (stack[stack.length - 1] == brackets[0]) { // извлекаем из стека скобку, если текущая её закрывает
  16. stack.pop();
  17. }
  18. else { // иначе баланс строк нарушен
  19. isBalanced = false;
  20. }
  21. }
  22.  
  23. return isBalanced && !stack.length; // если в стеке остались записи, то баланс нарушен
  24. }
  25.  
  26. console.log(checkBalanced('({(){}()})()', '()','{}'));
Add Comment
Please, Sign In to add comment