* Проверяет сбалансированы ли скобки в строке или нет.

Функция проверяет, сбалансированы ли скобки в строке, используя стек.

Короткий ответ

Что ответить на собеседовании

Функция проверяет, сбалансированы ли скобки в строке, используя стек.

Подробный разбор

Ответ с пояснениями

Условие

/**

  • Проверяет сбалансированы ли скобки в строке или нет.
  • Скобки, которые могут встретиться в строке:
  • [[{ и }]]
  • @param {string} str
  • @return {boolean} */ function parentheses(str) { const open = ['(', '[', '{']; const close = [')', ']', '}']; const stack = [];

for (let i = 0; i < str.length; i++) { const letter = str[i]; if (open.includes(letter)) { stack.push(letter); } else if (close.includes(letter)) { const index = close.indexOf(letter); const lastOpenIndex = stack.length - 1; if (open[index] !== stack[lastOpenIndex]) { return false; } else { stack.splice(lastOpenIndex, 1); } } }

return stack.length === 0; }

Ответ

Функция проверяет, сбалансированы ли скобки в строке, используя стек.

Идея:

  • При открывающей скобке кладём её в стек.
  • При закрывающей проверяем, соответствует ли она последней открытой (верхушке стека).
  • Если нет — возвращаем false.
  • В конце, если стек пуст, значит все скобки корректно закрыты.

Пример:

console.log(parentheses("{[()()]}") ); // true
console.log(parentheses("{[(])}") );   // false

Функция корректно обрабатывает круглые, квадратные и фигурные скобки.

Практика в реальном времени

Подготовьтесь к следующему собеседованию

Interview Boost учитывает вакансию, резюме и технологии и помогает сформулировать ответ прямо во время интервью.

Начать подготовку