Показать сообщение отдельно
  #1 (permalink)  
Старый 26.10.2023, 19:40
Аспирант
Отправить личное сообщение для firep91613 Посмотреть профиль Найти все сообщения от firep91613
 
Регистрация: 24.10.2023
Сообщений: 58

Валидация скобок
Подскажите, как улучшить/упростить?
function isValid(str) {
  const pairs = {
    '(': ')',
    '{': '}',
    '[': ']'
  }

  const stack = [];

  for (let s of str) {
    if (s == '(' || s == '{' || s == '[') {
      stack.push(pairs[s]);
    }

    if (s == ')' || s == '}' || s == ']') {
      if (s != stack[stack.length - 1]) {
        return false;
      } else {
        stack.pop(stack[stack.length - 1]);
      }
    }
  }

  return true;
}

console.log(isValid('(hello{world} and [me])'));  // true
console.log(isValid('(hello{world)} and [me])')); // false
console.log(isValid(')'));                        // false
Ответить с цитированием