Напишите функцию, которая проверяет корректность строки из круглых, квадратных и фигурных скобок: каждой открывающей должна соответствовать закрывающая, а вложенность не должна нарушаться.

Используйте стек: открывающие скобки добавляются, каждая закрывающая должна совпасть с последней открывающей.

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

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

Используйте стек: открывающие скобки добавляются, каждая закрывающая должна совпасть с последней открывающей.

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

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

Используйте стек: открывающие скобки добавляются, каждая закрывающая должна совпасть с последней открывающей.

В этом варианте допускаются только скобки, любой другой символ считается ошибкой, пустая строка корректна.

function validBrackets(text) {
  const pairs = new Map([[')', '('], [']', '['], ['}', '{']]);
  const stack = [];
  for (const ch of text) {
    if ('([{'.includes(ch)) stack.push(ch);
    else if (!pairs.has(ch) || stack.pop() !== pairs.get(ch)) return false;
  }
  return stack.length === 0;
}

Время O(n), память O(n) в худшем случае. Простого равенства количества скобок недостаточно: строка ([)] нарушает порядок вложенности.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее