Вот как нужно проходить собеседование на Junior Python разработчика

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

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

  • @yourcodereview
    @yourcodereview  Год назад +2

    Ребят, если вам понравился видосик, то поставьте ему лайк! По братски :)
    Ваша поддержка нереально много для нас значит!

  • @ЮрийКачанов-я5ф
    @ЮрийКачанов-я5ф 9 месяцев назад +3

    def func(lst1, lst2):
    return sort(lst1 + lst2, key=lambda(x, int(x.split(" ")[0]))).
    Первое, что пришло в голову после того, как ознакомился с условием)

    • @riserlarens7634
      @riserlarens7634 4 месяца назад

      тут даже сплитить не нужно, строки и так сортируются правильно

  • @mgotovtsev
    @mgotovtsev 10 месяцев назад +2

    Задача в две строки решается (можно в одну). Вначале сплит, потом heapq. merge листов. И можно любое количество датчиков обработать через *args.

    • @mgotovtsev
      @mgotovtsev 10 месяцев назад

      Фаааак... Парень потом прямо говорит, что через кучу надо решать эту задачу 😂😂😂 когда писал решение ещё не досмотрел до конца. Если без merge готового делать, то нужно да через кучу в цикле перебирать итераторы. Делал подобное когда-то... Там значения только из файлов приходили. После каждой итерации вызываем хипифай и берëм значение, и делаем некст соотв. итератору.

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

    Спасибо за видос. Очень интересное интервью

  • @kaluginpeter
    @kaluginpeter 10 месяцев назад

    Интересный собес! По поводу задачи на слияние двух отсортированных последовательностей, то на ум сразу пришел Two Pointers

    • @VGCor
      @VGCor 9 месяцев назад +1

      Ну это не наши методы) В смысле не методы питонистов

  • @maxpiotrkowski
    @maxpiotrkowski Год назад +5

    Не могли бы добавить тест-кейсы задачи? Интересно попробовать самому решить🙂

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

    Благодарю, качественно.

  • @ussenUtebayev
    @ussenUtebayev Год назад +2

    В первой задаче можно определить класс передать параметры в конструктор все три значения, перопределить методы сравнения и в результирующей функций сплитит строки и передавать аргументом в класс и накинуть аргумент sort(key=instance.timestamp)
    Незнаю будет ли работать, накинул из головы

  • @лехалеха-л6м
    @лехалеха-л6м 7 месяцев назад +1

    При всём уважении объясните мне, пожалуйста, почему эту задачу не решили банальным сложением списков и сортировкой с ключом по анонимной функции lambda, в которой мы каждый список сплитуем и сортируем по первому элементу сплита? Тогда будет всего 4-6 строчек кода. Или я неправильно задачу понял?

  • @luckytima2315
    @luckytima2315 Год назад +14

    Что за кринжатина, 30 минут ковырять задачу которая легче чем задача 26 из егэ. Кликбейтный заголовок ...

    • @shoggot282
      @shoggot282 10 месяцев назад

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

    • @fokuspokusss
      @fokuspokusss 5 месяцев назад +1

      @@shoggot282я в этом году егэ сдавал. Сделал 27, только для б пункта не успел, остальное все сделал. Егэ изи, но оно очень тупое, для проверки программирования…

  • @ИннаЛиксакова-о4н
    @ИннаЛиксакова-о4н Год назад +1

    ещё бы увидеть, что там за задача, а то на слух сложно

  • @NightoSan
    @NightoSan 6 месяцев назад

    это надо быть надмозгом созать i и j коунтеры и затем делать цикл в цикле c i и j

  • @sarger571
    @sarger571 4 месяца назад

    ilst = ['222 str data', '444 str data', '555 str data', '888 str data']
    jlst = ['555 str data', '999 str data', '1400 str data']
    klst = ['2 str data', '3 str data', '51 str data']
    res = []
    def sort_data(*args):
    if max(len(lst) for lst in list(args)) == 0:
    return
    lists = [lst for lst in list(args) if len(lst) != 0]
    first_items = [int(lst[0].split(' ')[0]) for lst in lists]
    min_idx = 0
    for idx in range(len(first_items)):
    if first_items[idx] < first_items[min_idx]:
    min_idx = idx
    res.append((lists[min_idx]).pop(0))
    return sort_data(*args)
    sort_data(ilst, jlst, klst)
    print(res)
    😅

  • @НикитаБуров-ъ6р
    @НикитаБуров-ъ6р 4 месяца назад

    комментаторы смешные, толи не понимают задачи, толи не понимают ограничения.
    какие result.append( some_list [ i ] )? у вас память бесконечная? только result.append( some_list . pop( 0 )
    какие return sorted? опять память
    кокой sort ( some_list )? n log n, а надо за n
    да, и на верхнем уровне список дополняется до длины int ( log ( len ( spisok_spiskov ) ) ) + 1 пустыми списками, поверх итеративно merge через for (1, len (spisok_spiskov ), 2) --> сокращение списка до 1 за log n

    • @riserlarens7634
      @riserlarens7634 4 месяца назад

      так никто не просил писать эффективный код)

    • @НикитаБуров-ъ6р
      @НикитаБуров-ъ6р 4 месяца назад

      @@riserlarens7634 здесь просто не успели так как времени потеряли кучу на разбор плохого решения, да и вообще собес (алго секция) это про чек алгоскилов

    • @riserlarens7634
      @riserlarens7634 4 месяца назад

      @@НикитаБуров-ъ6р, не успели что? Никто не говорил что это алго секция, просто кодинг. Вдруг они просто хотели проверить знания питона, а не алгоритмов, кто знает)

    • @НикитаБуров-ъ6р
      @НикитаБуров-ъ6р 4 месяца назад

      @@riserlarens7634 мб мб, но если кандидат плывет то нет и смысла копать глубже, а если тянет - будут копать до предела компетенций

  • @seoonlyRU
    @seoonlyRU Год назад +2

    чотенько! лайк от СЕООНЛИ!

  • @yakirakun3938
    @yakirakun3938 Год назад +5

    Как Кирилла меня задело написание имени а одной буквой Л 😂😂😂

  • @1200eojf
    @1200eojf 9 месяцев назад

    если идти не на питон разраба а на джанго то будут ли такие задачи?

    • @Developerchik
      @Developerchik 9 месяцев назад +1

      Там похожие но чуть сложнее и с вводными данным разными и валидацией

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

      Чего??А Джанго у тебя не на питоне написана)))Один хрен сначала питон спрашиваю базовый(если на джуна идешь) , потом к джанго переходят , мидлвары, orm джанговская + rest ( без него хрен найдешь вакансию) , + http,smtp,https что и как куда и где, зачем и тд и тп

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

      Это так что первое в голову пришло по вопросам

  • @Chel1k7
    @Chel1k7 Год назад +2

    А что обычный extend изначально был запрещен? К чему сложности через while?

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

      Если написать просто extend, то условие отсортированности результирующего массива не будет соблюдаться

    • @Алексей-ъ4д5ю
      @Алексей-ъ4д5ю Год назад +2

      @@VaeVictisDanil а что sorted запрещен?

    • @1234567qwerification
      @1234567qwerification Год назад

      Тогда следующим вопросом было бы что-то про "о большое"? 😀

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

      ​@@Алексей-ъ4д5юкакой смысл в алго-собесе, если можно сортировать функцией из стандартной библиотеки? да и сильно неэффективно вышло бы, важна оптимальность решения по скорости и по памяти

    • @Алексей-ъ4д5ю
      @Алексей-ъ4д5ю Год назад

      @@arthurlouiskarl какой алгособес джуну? ладно бы он основной функционал еще показал, что он понимает, что есть другие способы. то, что он выдал в видосе, это базовый гигачад пришедший из сей. смысл в питоне и куче его полезных функций и либ, если ты не в состоянии показать это хотя бы в самом начале, прежде чем начнешь что-то подобное лепить? я не говорю, что он это сделал неправильно, я говорю, что я бы на собесе джуна алгоритмы проверял во вторую очередь. возможно перед видео они уже что-то обсудили и оценили, поэтому решили сразу так, но у зрителя такой информации нет. почему сразу не прыгнуть к torch GPU сорту, который самый быстрый на данный момент? Это даже больше вопрос не к джуну, а к интервьюеру

  • @vladtsipov8946
    @vladtsipov8946 10 месяцев назад +3

    def neuro_lists_merge(_list1, _list2):
    _list1.extend(_list2)
    return sorted(_list1, key=lambda x: int(x.split()[0])) 🤷‍♀

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

    Какое решение оптимальное?

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

      a = '1111 name2 1111'
      b = '1111 name1 1111'
      c = '3333 name3 5555'
      d = '3333 name4 2222'
      g = '2222 name4 5555'
      def sort(*args):
      res = []
      for arg in args:
      res.append(arg)
      return sorted(res, key = lambda x: (int(x.split(' ')[0]),int(x.split(' ')[2]),int( x.split(' ')[1]))
      print(sort(a, b, c, d, g))
      вот что я придумал буквально за 10 минут (изучаю python месяца 3)

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

      @@kurisug8867 Сложность nlogn ,а в видосе делают за линейное , что быстрее

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

      @@kurisug8867 Это код не работает. Более того, задача была не об этом. Изначально приходят отсортированные списки, в которых хранятся данные.

  • @nnnlik
    @nnnlik 10 месяцев назад

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

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

    Спрм в жп

  • @blackberryninja
    @blackberryninja Месяц назад

    Это невозможно смотреть, пол часа ненужных англицизмов с объяснениями почему я выбрал эту работу? 🥴🤢

  • @АлександрБутин-к9ю

    Сам еще даже не джун и не стажер
    Если я верно понял, то на вход функция получает строки текстовые, почему начали говорить о листах не ясно...(p.s. свой пример делал из 3 строк)
    Вижу такое решение, вводим на вход функции 3 строки, их сплитуем и делаем из них те самые листы..)
    Делаем общий лист добавляя в него под листы тех самых строк, и вызываем built-in функцию Sorted и сортировку по ключу делаем ( через анонимку ключом указываем 0 элемент листа т.е. тот timestamp)
    выдаем на выход функции..
    Если я что то натупил то поправьте..
    def mergeandsort(fR: str, lR:str , nR: str)->list:
    fR=fR.split()
    lR=lR.split()
    nR=nR.split()
    result=list()
    result.append(fR)
    result.append(lR)
    result.append(nR)
    return sorted(result,key= lambda x: int(x[0]),reverse=False)

    • @ЖораАбадаев
      @ЖораАбадаев Год назад

      Вы неправильно поняли суть задачи. С каждого датчика приходят список строк. Каждая строка это три значения разделенные пробелом. То есть в первом списке может быть например 1500 строк формата "1827361 name_metrik 1231712". А во втором списке может быть например 20000 строк такого же формата. Нужно сделать список, в котором будет 21500 строк, но они ещё и должны быть отсортированы по первому значению. Попробуйте решить)

  • @YevhenSyzintsev-h1u
    @YevhenSyzintsev-h1u 11 месяцев назад +1

    это что за трэш контент ? задача в 4-5 строк решается

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

    Чел в кепке похож на Тома Холланда

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

    Фу, 🤮

  • @maesthrow
    @maesthrow 10 месяцев назад +1

    def merge_sorted_lists(list1, list2):
    return sorted(list1 + list2, key=lambda x: x.split()[0])

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

    def merge_ordered_lists(metric, *args):
    return sorted(value
    for values in args
    for value in values
    if value.split()[1] == metric
    ) # time O(n log n), space O(n)

  • @Алексей-ъ4д5ю
    @Алексей-ъ4д5ю Год назад +3

    кринжа сишного навалил)))
    result.extend([list1,list2])
    return sorted(result)

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

      Интересно как он будет string сравнивать, по лексикографическому порядку?

    • @Алексей-ъ4д5ю
      @Алексей-ъ4д5ю Год назад

      @@ussenUtebayev
      так как таймштамп стоит в начале строки, то и сортировать будет по нему, а именно по возрастанию аски кодов

    • @eeeeeeee133
      @eeeeeeee133 Год назад +2

      merge sort 2 отсортированных массивов за n происходит, твой вариант за n log n

    • @1234567qwerification
      @1234567qwerification Год назад

      Таймстемпы будут одинаковой длины ещё очень долго (раньше кончится инт32, чем достигнет 10 миллиардов).
      Но да, формально надо приводить к числу.

    • @Алексей-ъ4д5ю
      @Алексей-ъ4д5ю Год назад

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