1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/songjinyang-everyday

 / Детали:

Задача 25. Напишите функцию, которая проверяет, закрыты ли фигурные скобки в заданном выражении....

Предстоит сделать
Владелец
Создано  
27.04.2025

javascript function areBracesClosed(expression) { let stack = []; for (let i = 0; i < expression.length; i++) { if (expression[i] === '{') { stack.push(expression[i]); } else if (expression[i] === '}') { if (stack.length === 0) { return false; } stack.pop(); } } return stack.length === 0; } var expression = "{{}}{}{}"; //true var expressionFalse = "{}{{}"; //false console.log(areBracesClosed(expression)); // true console.log(areBracesClosed(expressionFalse)); // false Функция areBracesClosed принимает строку expression и проверяет, правильно ли закрыты фигурные скобки.

   // Напиши функцию, которая проверяет, закрыты ли фигурные скобки в заданном выражении
        var expression = "{{}}{}{}";   //true
        var expressionFalse = "{}{{}";   //false
        // Только для выражений;
        function getFu(x) {
            let arr = Array.prototype.slice.call(x);
            let obj = {};
            let it = [];
            console.log(arr);
            for (var i = 0; i < arr.length; i++) {
                // Если не добавлено
                if (obj[arr[i]]) {
                    // Есть, повторяется
                    it.push(arr[i]);
                } else {
                    obj[arr[i]] = arr[i];
                }
            }
            // Кроме {} добавляем все повторяющиеся в массив
            if (it.length % 2 === 0) {
                // Четное
                return true;
            } else {
                // Нечетное
                return false;
            }

        }
        console.log(getFu(expression));

        // Полная версия от Jian:
// Для каждой открывающейся фигурной скобки { добавляем её в массив. Если встречаем закрывающуюся }, удаляем последнюю добавленную { из массива. Если массив пуст, а встречаем }, значит скобки не закрыты.
        function isO(str) {
            const arr = [];
            for (let item of str) {
                if (item === '{') {
                    arr.push(item);
                } else if (item === '}') {
                    if (arr.length === 0) {
                        return false;
                    } else {
                        arr.pop();
                    }
                }
            }
            if (arr.length === 0) {
                return true;
            } else {
                return false;
            }
        }
        console.log(isO('{}{{}{}}'));

Комментарий (0)

GitLife Service Account Задача создана

Вход Перед тем как оставить комментарий

Статус
Ответственный
Контрольная точка
Pull Requests
Связанные запросы на слияние могут быть закрыты после их объединения
Ветки
Дата начала   -   Крайний срок
-
Закрепить/Открепить
Приоритет
Участники(1)
1
https://api.gitlife.ru/oschina-mirror/songjinyang-everyday.git
git@api.gitlife.ru:oschina-mirror/songjinyang-everyday.git
oschina-mirror
songjinyang-everyday
songjinyang-everyday