LeetCode

Поделиться
HTML-код
  • Опубликовано: 9 янв 2025

Комментарии • 22

  • @ВладЛевчик-л4п
    @ВладЛевчик-л4п Год назад +12

    Я сейчас сам учусь на лит коде, было бы славное если бы ты много видосов дела на эту тему, по одной задачки в день, очень интересно смотреть

    • @EugeneSuleimanov
      @EugeneSuleimanov  Год назад +8

      Спасибо за отзыв! Раз в день сложно, но стараюсь набивать коллекцию из 100 штук

    • @manOfPlanetEarth
      @manOfPlanetEarth Год назад +1

      @@EugeneSuleimanov
      лучики поддержки вам в этом деле☝🏼☝🏼
      Только один момент: уберите, плз, из плейлиста "Задачи литкод" стендап чебаткова: он тут вообще ни к чему.

    • @EugeneSuleimanov
      @EugeneSuleimanov  Год назад +1

      @@manOfPlanetEarth спасибо, сделаю ))
      Видимо, случайно попал )

  • @LAZIO14
    @LAZIO14 7 месяцев назад

    Обожаю твои видео

  • @edmond-dantes-1796
    @edmond-dantes-1796 Год назад +1

    Хороший разбор вариантов. Задачка не сложная, но добиться минимальной сложности всегда надо подумать.
    Было бы круто такие же видосы делать с задачками посложнее.

    • @EugeneSuleimanov
      @EugeneSuleimanov  Год назад +3

      Спасибо за отзыв!
      Более сложные задачи в работе

  • @tiy2000
    @tiy2000 Год назад +1

    Спасибо!)

  • @prayer4675
    @prayer4675 Год назад

    Третье решение для юникода может быть таким:
    public boolean isAnagram(String s, String t) {
    if (s.length() != t.length()) {
    return false;
    }
    var map = s.chars()
    .mapToObj(c -> (char) c)
    .collect(Collectors.groupingBy(c -> c, Collectors.counting()));
    t.chars()
    .mapToObj(c -> (char) c)
    .forEach(c -> map.compute(c, (k, v) -> v == null ? -1 : --v));
    return map.values().stream().noneMatch(count -> count != 0L);
    }
    Беда лишь в том, что оба решения неверные. Дело в том, что юникодные символы находятся в пространстве 32-х битных значений, но в Java используется UTF-16, в котором char - это, на самом деле не символ, вернее не всегда символ, а так называемый code point. Чаще всего первых 16-и бит достаточно для представления символов обычных языков или Basic Multilingual Plane (BMP) и тогда в char находится именно символ. Но иногда символ может кодироваться двумя 16-и битными значениями и тогда каждое из этих значений в отдельности символом не является. Для проверки этого даже есть метод Character.isLetter()
    Примеры символов, требующих два char значения: 𨭎 𠬠 𩷶
    Если эти char значения в паре поменять местами, получится другой символ и такая якобы анаграмма на самом деле вовсе не анаграмма.
    На leetcode этого не учли и поэтому наши решения проходят тестирование, хотя не должны.

  • @ilialenskii6211
    @ilialenskii6211 Год назад

    Про первый вариант решения. Там ведь не просто O(n log n), а O(n log n) + O(n log n) + N\2. Где N\2 (среднее) это посимвольное сравнение, где в худшем случае будет сравнение до конца массивов, если строки равны. Как вы оцениваете такое решение на интервью от 1 до 10?

    • @EugeneSuleimanov
      @EugeneSuleimanov  Год назад +1

      Коэффициенты не учитываются при оценке.

  • @andreyyyymeee1323
    @andreyyyymeee1323 Год назад

    Евгений, сами решали или с помощью gpt chat?

  • @ilialenskii6211
    @ilialenskii6211 Год назад

    Евгений, имеет ли смысл давать ссылку на профиль leetcode в резюме?

    • @EugeneSuleimanov
      @EugeneSuleimanov  Год назад

      Не думаю. Вряд ли это будет сильно учитываться при отборе.

  • @nickpetr
    @nickpetr Год назад +1

    я решал эту задачу я такой там код написал как дом из 5 этажей)) и показывать стыдно)

  • @KaBy34
    @KaBy34 Год назад +1

    🍿😐🍿

  • @ilialenskii6211
    @ilialenskii6211 Год назад

    Если не секрет, расскажите почему решили продолжит решать задачки после столь длительного перерыва.

    • @EugeneSuleimanov
      @EugeneSuleimanov  Год назад +1

      Продолжить цикл, и «вернуть форму»