Задача: Проверка на сбалансированные скобки
Описание
Напишите функцию, которая проверяет, являются ли все скобки в строке сбалансированными. Сбалансированные скобки означают, что каждая открывающая скобка имеет соответствующую закрывающую скобку того же типа, и скобки правильно вложены.
Пример
Указания
Функция должна поддерживать три типа скобок: круглые (), квадратные [] и фигурные {}.
Функция должна игнорировать все остальные символы в строке.
Строка может содержать любые символы, но интересуют только скобки.
Требования
Создайте функцию isBalanced с одним параметром — строкой, которую нужно проверить.
Функция должна вернуть true, если все скобки сбалансированы, и false в противном случае.
Объяснение
Создаём пустой массив stack для отслеживания открывающих скобок.
Создаём объект brackets, в котором ключи — это открывающие скобки, а значения — соответствующие закрывающие скобки.
Итерируемся по каждому символу строки.
Если символ является открывающей скобкой, добавляем соответствующую закрывающую скобку в стек.
Если символ является закрывающей скобкой, проверяем, совпадает ли он с последним элементом в стеке. Если нет, возвращаем false.
В конце возвращаем true, если стек пустой (все скобки были правильно закрыты), и false в противном случае.
#домашка
Описание
Напишите функцию, которая проверяет, являются ли все скобки в строке сбалансированными. Сбалансированные скобки означают, что каждая открывающая скобка имеет соответствующую закрывающую скобку того же типа, и скобки правильно вложены.
Пример
isBalanced("{[()]}") // true
isBalanced("{[(])}") // false
isBalanced("{[}") // false
Указания
Функция должна поддерживать три типа скобок: круглые (), квадратные [] и фигурные {}.
Функция должна игнорировать все остальные символы в строке.
Строка может содержать любые символы, но интересуют только скобки.
Требования
Создайте функцию isBalanced с одним параметром — строкой, которую нужно проверить.
Функция должна вернуть true, если все скобки сбалансированы, и false в противном случае.
// Примеры использования
console.log(isBalanced("{[()]}")); // true
console.log(isBalanced("{[(])}")); // false
console.log(isBalanced("{[}")); // false
Объяснение
Создаём пустой массив stack для отслеживания открывающих скобок.
Создаём объект brackets, в котором ключи — это открывающие скобки, а значения — соответствующие закрывающие скобки.
Итерируемся по каждому символу строки.
Если символ является открывающей скобкой, добавляем соответствующую закрывающую скобку в стек.
Если символ является закрывающей скобкой, проверяем, совпадает ли он с последним элементом в стеке. Если нет, возвращаем false.
В конце возвращаем true, если стек пустой (все скобки были правильно закрыты), и false в противном случае.
#домашка
👍1
Подборка лучших постов за прошлую неделю
Лучшие статьи @free_html_lessons:
1. File picker
2. Что такое CSS Paint API
3. Задача: Проверка на сбалансированные скобки
Лучшие фронтенд вакансии @job_webdev:
1. HTML-верстальщик
2. HTML-верстальщик
3. HTML-верстальщик
Лучшие дизайн вакансии @job_webdesign:
1. Web дизайнер
2. UX/UI дизайнер
3. Web designer
#лучшеезанеделю
Лучшие статьи @free_html_lessons:
1. File picker
2. Что такое CSS Paint API
3. Задача: Проверка на сбалансированные скобки
Лучшие фронтенд вакансии @job_webdev:
1. HTML-верстальщик
2. HTML-верстальщик
3. HTML-верстальщик
Лучшие дизайн вакансии @job_webdesign:
1. Web дизайнер
2. UX/UI дизайнер
3. Web designer
#лучшеезанеделю
👍1
Что делает метод requestAnimationFrame()?
Anonymous Quiz
37%
Запускает анимацию с фиксированной частотой кадров (например, 60 FPS)
13%
Работает как setInterval(), вызывая функцию через заданные промежутки времени
47%
Вызывает функцию перед отрисовкой следующего кадра, чтобы оптимизировать производительность
3%
Немедленно обновляет и перерисовывает весь DOM
Какой метод позволяет изменять порядок элементов массива?
Anonymous Quiz
25%
sorting()
7%
shift()
10%
splice()
59%
reverse()
👍2🦄2
Задача: Реализуй функцию delayedQueue, которая принимает массив функций и вызывает каждую из них с задержкой 1 секунду.
Пример использования:
#домашка
Пример использования:
const tasks = [
() => console.log('Задача 1'),
() => console.log('Задача 2'),
() => console.log('Задача 3'),
];
delayedQueue(tasks);
// Вывод должен быть с интервалом 1 сек:
// "Задача 1"
// (спустя 1 секунду) "Задача 2"
// (спустя 1 секунду) "Задача 3"
#домашка
Подборка лучших постов за прошлую неделю
Лучшие статьи @free_html_lessons:
1. Color picker
2. Как сделать поднимающийся placeholder?
3. CSS Custom Properties
Лучшие фронтенд вакансии @job_webdev:
1. Frontend-разработчик в стартап
2. HTML-верстальщик
3. Frontend-разработчик
Лучшие дизайн вакансии @job_webdesign:
1. Web дизайнер
2. UX/UI дизайнер
#лучшеезанеделю
Лучшие статьи @free_html_lessons:
1. Color picker
2. Как сделать поднимающийся placeholder?
3. CSS Custom Properties
Лучшие фронтенд вакансии @job_webdev:
1. Frontend-разработчик в стартап
2. HTML-верстальщик
3. Frontend-разработчик
Лучшие дизайн вакансии @job_webdesign:
1. Web дизайнер
2. UX/UI дизайнер
#лучшеезанеделю
HTML Вопрос:
С точки зрения семантики может ли элемент <footer> содержать <main>?
С точки зрения семантики может ли элемент <footer> содержать <main>?
Anonymous Quiz
28%
Да
67%
Нет
4%
Посмотреть ответы
JS Вопрос:
С помощью какого ключевого слова мы можем присвоить метод самой функции-классу, а не её "prototype"?
С помощью какого ключевого слова мы можем присвоить метод самой функции-классу, а не её "prototype"?
Anonymous Quiz
13%
public
23%
get
27%
set
26%
static
11%
Посмотреть ответы
Задача: Напиши функцию limitedParallel(promises, limit), которая выполняет limit промисов одновременно, а остальные ставит в очередь.
Пример использования:
#домашка
Пример использования:
const tasks = [
() => new Promise(res => setTimeout(() => res('A'), 1000)),
() => new Promise(res => setTimeout(() => res('B'), 500)),
() => new Promise(res => setTimeout(() => res('C'), 800)),
() => new Promise(res => setTimeout(() => res('D'), 300))
];
limitedParallel(tasks, 2).then(console.log);
// Промисы выполняются не больше чем по 2 за раз
#домашка
👍1