Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про JavaScript: stack, brackets, validation, parsing, data structure

Как проверить корректность вложенности скобок в строке с поддержкой разных типов скобок?

Вопрос проверяет умение использовать стек для проверки корректности вложенности скобок разных типов в строке.

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

Для проверки вложенности скобок используется стек. Проходим по строке: если встречаем открывающую скобку, кладем её в стек; если закрывающую — проверяем, соответствует ли она верхнему элементу стека. Если стек пуст или скобки не совпадают, строка некорректна. В конце стек должен быть пуст.

Длинный ответ

Проверка вложенности скобок с помощью стека

Стек — это структура данных, работающая по принципу LIFO (последним пришёл — первым вышел). Она идеально подходит для проверки вложенности скобок, так как каждая открывающая скобка должна быть закрыта соответствующей закрывающей в правильном порядке.

Алгоритм

  • Создаём пустой стек.
  • Проходим по каждому символу строки.
  • Если символ — открывающая скобка (например, '(', '{', '['), помещаем её в стек.
  • Если символ — закрывающая скобка (')', '}', ']'), проверяем: если стек пуст — строка некорректна; иначе извлекаем верхний элемент и сравниваем с текущей скобкой. Если они не образуют пару — строка некорректна.
  • После обработки всех символов стек должен быть пуст. Если в стеке остались элементы — строка некорректна.

Пример кода на JavaScript

function isValidBrackets(s) {
  const stack = [];
  const pairs = { ')': '(', '}': '{', ']': '[' };
  for (let char of s) {
    if (char === '(' || char === '{' || char === '[') {
      stack.push(char);
    } else if (char === ')' || char === '}' || char === ']') {
      if (stack.length === 0 || stack.pop() !== pairs[char]) {
        return false;
      }
    }
  }
  return stack.length === 0;
}
console.log(isValidBrackets('({[]})')); // true
console.log(isValidBrackets('({[})'));  // false

Применение

Этот алгоритм используется в компиляторах, интерпретаторах, редакторах кода для проверки синтаксиса, а также в парсерах математических выражений.

Вывод: Стек — простой и эффективный способ проверки вложенности скобок. Применяйте его везде, где нужно убедиться в корректности парных символов в строке.

Frontend developer

tech
tech
tech
tech
tech
tech
tech
tech
tech

Ментор по Frontend

Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства

Записаться на консультацию

Уровень

  • Рейтинг:

    4

  • Сложность:

    3

Навыки

  • JavaScript

    JavaScript

  • Networks

Ключевые слова

#stack

#brackets

#validation

#parsing

#data structure

Подпишись на React Developer в телеграм

Frontend developer

tech
tech
tech
tech
tech
tech
tech
tech
tech

Ментор по Frontend

Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства

Записаться на консультацию