daria-moreno

Tagged “programming”

Дарья Морено

Программистка. Живу в Берлине, учу немецкий, люблю Тейлор Свифт
и спорт с ракетками
Здесь пишу как у меня дела, чтобы не забыть из чего состоят дни

Меня можно найти в твиттере и в инстаграме

Санкт-Петербург, Россия => Берлин, Германия

    задачки по js

    programming interviews

    Список задачек, которые у меня спрашивали на фронтендерских собеседованиях в 2023 году

    1. Классическое расплющивание массива

      Массив с результатами храним в замыкании, туда записываем значения, если наше значение это другой массив, то вызываем ту же функцию рекурсивно. Есть и другие варианты этой задачи, например с указанием глубины


    const arr = [1, [2, [3, [4, 5]]]]; // => [1, 2, 3, 4, 5]
    
    export function flat(arr) {
      const result = [];
    
      function helper(a) {
        for (let i of a) {
          if (Array.isArray(i)) {
            helper(i);
          } else {
            result.push(i);
          }
        }
      }
    
      helper(arr);
      return result;
    }

    1. Каррирование с последующим вызовом без аргумента

    Если у нас есть второй аргумент, возвращаем функцию, куда передаем сумму. Если его нет, возвращаем сумму

    // sum(1)(2)(3)() => 6
    
    function sum(a) {
      return function (b) {
        if (!b) {
          return a;
        }
    
        return sum(a + b);
      };
    }

    1. Проверить правильность скобок

    Записываем скобки в словарик, итерируемся по массиву. Если попадается открывающая скобка, добавляем в стек такую же закрывающую. Если попадается закрывающая, сравниваем ее с последней скобкой в стеке. Если они не равны, возвращаем false. В конце функции длина стека должна быть равна нулю

    const brackets = {
      "(": ")",
      "{": "}",
      "[": "]",
    };
    
    function isValid(string) {
      const stack = [];
    
      for (let i of string) {
        if (brackets[i]) {
          stack.push(brackets[i]);
        } else {
          if (i !== stack.pop()) return false;
        }
      }
    
      return stack.length === 0;
    }

остальные посты почитать можно тут

See all tags.