Advertisement
vit134

Последовательность скобок

Oct 26th, 2018
140
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /*
  2.     Есть строка, состоящая из разных скобок, проверить закрыты ли все (стэк)
  3. */
  4.  
  5. const strFalse = '())({}}{()][][';
  6.  
  7. const strTrue = '(({}[]([{}])))';
  8.  
  9. function skobki(str) {
  10.     let stack = [];
  11.  
  12.     let opening = {
  13.         '[': ']',
  14.         '{': '}',
  15.         '(': ')'
  16.     }
  17.  
  18.     for (let i = 0; i < str.length; i++) {
  19.         let c = str[i];
  20.  
  21.         if (i === 0 && !opening[c]) return false;
  22.  
  23.         if (opening[c]) {
  24.             stack.push(opening[c]);
  25.         } else {
  26.             let el = stack.pop();
  27.             if (!el || c !== el) return false;
  28.  
  29.         }
  30.     }
  31.  
  32.     return true;
  33. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement