Facebook coding task. Software developer - реальная задача на позицию программиста.

แชร์
ฝัง
  • เผยแพร่เมื่อ 23 พ.ย. 2024

ความคิดเห็น • 8

  • @sergeyeremenko
    @sergeyeremenko 3 ปีที่แล้ว +2

    Есть решение с O(1) для памяти. Просто в один проход сканируешь строку: до первого
    определяешь на какой позиции находится нужная колонка, на последующих строках выделяешь нужное значение при помощи подсчета запятых

  • @yaroslavtikhonov3584
    @yaroslavtikhonov3584 3 ปีที่แล้ว +2

    Не могу воспринимать С++, поэтому сварганил быстренько на java решение, получилось 5 минут + тест) все ли верно в нем?
    Integer solution(String input, String request) {
    var map = new HashMap();
    var lines = input.split("
    ");
    var header = lines[0].split(",");
    for (var column : header) {
    map.put(column, new ArrayList());
    }
    for (int i = 1; i < lines.length; i++) {
    var columns = lines[i].split(",");
    for (int j = 0; j < columns.length; j++) {
    if (j >= header.length) {
    throw new IllegalArgumentException("Invalid input string");
    }
    String key = header[j];
    if (map.get(key) != null) {
    map.get(key).add(columns[j]);
    } else {
    throw new IllegalArgumentException("Invalid input string");
    }
    }
    }
    var targetList = map.get(request);
    var result = Integer.MIN_VALUE;
    for (var value : targetList) {
    try {
    var parsedValue = Integer.parseInt(value);
    result = Math.max(result, parsedValue);
    } catch (Exception e) {
    throw new NumberFormatException(String.format("Can't parse %s to integer", value));
    }
    }
    return result;
    }

  • @recycle-bin-camp
    @recycle-bin-camp 3 ปีที่แล้ว +2

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

  • @КириллЧе-я5ы
    @КириллЧе-я5ы 3 ปีที่แล้ว +1

    Вопрос небольшой. Скажите пожалуйста в практике структуры данных используются для хранения и работы с данными в оперативной памяти? Или они ещё используются для хранения данных на носителях? Спасибо

    • @itdog
      @itdog  3 ปีที่แล้ว +1

      Здравствуйте, Кирилл. На практике могут использоваться самые разные варианты, зачастую конечно же мы говорит о структурах данных, которые хранятся исключительно только в оперативной памяти компьютера. Это самый частый предмет разговора, однако иногда встречаются структуры с возможностью их сериализации/десериализации для сохранения данных на диск либо же передачи данных по сети. Рекомендую почитать информацию по следующим ключевым словам: сериализации, десериализации, RPC фреймворки и особенности транспорта пользовательских структур/классов.

    • @КириллЧе-я5ы
      @КириллЧе-я5ы 3 ปีที่แล้ว

      @@itdog спасибо большое! С плюсами знаком давно, ещё с 90-х, тогда же кодил, но не в продакшне, а в научной области, гуи писал немного под мфс, а щас вот изучаю новый вариант плюсов и пытаюсь малость автоматизировать ту область, в которой работаю… а опыта в продакшне нет. Ваши видео просматриваю как раз в большей части практического применения языка… было бы неплохо практику применения тех или иных структур и паттернов проектирования…

  • @recycle-bin-camp
    @recycle-bin-camp 3 ปีที่แล้ว +1

    а что если строка битая, тоисть количество значений в строке не соответсвтует размеру других строк?

    • @itdog
      @itdog  3 ปีที่แล้ว

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