• Как проверить строку на сбалансированность скобок?

    SHVV
    @SHVV
    Ололошки уже три ответа и ни одного правильного.
    function isBalanced(str) {
        // пары открывающих-закрывающих скобок
        var br = "(){}[]";
        // стек открытых скобок
        var st = [];
        // бежим по всей строке
        for (var i = 0; i < str.length; ++i) {
            // текущий символ
            var ch = str[i];
            // ищем символ в скобках
            var ind = br.indexOf(ch);
            // если скобка найдена
            if (ind >= 0) {
                // проверяем, какая это скобка
                if (ind & 1) {
                    // если закрывающая скобка, проверяем стек
                    // стек пуст - плохо
                    if (!st.length) return false;
                    // извлекаем последнюю открытую скобку из стека
                    var last_br = st.pop();
                    // если она не соответствует закрывающей скобке - тоже плохо
                    if (last_br != br[ind - 1]) return false;
                } else { 
                    // открывающую скобку просто пихаем в стек
                    st.push(ch);
                }
            }
        }
        // если после обхода всей строки стек пуст - всё ок
        return !st.length;
    }

    Проверять тут.
    Ответ написан
    2 комментария
  • Yandex поиск пагинация странная i++?

    @Verkans
    Заметил, что ещё реагирует на слова:
    • debugbar
    • medialibrary
    • migration foreign
    • migration seed
    Ответ написан
    Комментировать
  • Как сделать чтобы текст не вылазил за ширину блока?

    julia_amake
    @julia_amake
    Front-end разработчик
    LOREMLOREMLOREMLOREMLOREMLOREMLOREMLOREMLOREMLOREMLOREMLOREMLOREMLOREMLOREMLOREMLOREMLOREMLOREMLOREMLOREMLOREMLOREMLOREMLOREMLOREMLOREMLOREMLOREM

    1) не писать такие длинные слова, а ставить пробелы между LOREM LOREM
    2) если вы это сделали намеренно, тогда word-break в помощь
    Ответ написан
    Комментировать