Собеседование Алексей и Тимур

Поділитися
Вставка
  • Опубліковано 26 кві 2024
  • t.me/UA-camPronin
    Чат для общения python разработчиков и им сочуствующих. Свободное общение, тестовые и вопросы с собесов и прочее. Заходите, там вам рады.
    Поддержать канал: www.tinkoff.ru/rm/pronin.andr...
    Обычно денежка идёт на книжки про питончик. Но иногда на светлое и тёмное.
    Если Тиньков не даёт перечислить, стукните в личку телеги andpronin, придумаем что нибудь
    Виш лист
    Хорошие книги по Питончику, которые могу рекомендовать (и хочу купить с вашей помощью).
    Изучаем Python. Двухтомник. Марк Лутц. Очень подробно и структурно (Хочу дождаться 6го издания.. )
    • Изучаем Python с Марко...
    Читаем и разбираем ее тут
    Куплено (огромное спасибо зрителям)
    Знакомство с Python | Бейдер Дэн (2023) - выглядит приятно для новичка
    Чистый Python. Тонкости программирования для профи | Бейдер Дэн (2022) - хорошо для продолжения
    Высоконагруженные приложения. Программирование, масштабирование, поддержка | Клеппман Мартин
    Python. К вершинам мастерства | Рамальо Лучано - 2е издание - сложно для новичка, но интересно
    Паттерны разработки на Python: TDD, DDD и событийно-ориентированная архитектура -- хорошо про то, когда какой фреймворк применять
    Видимо, дальше появтся еще нескромные желания. Но пока - так
    Моя тележка andpronin -- стучите, если что.
    Мой канал про обучению python с нуля и до мидла Андрей+=Пронин
    / @pypronin
    Я в других сетях
    🔗Вконтакте: CaptPronin
    🔗Дзен: zen.yandex.ru/id/5fbd33919412...
    #python #питон #программирование #Андрей_Пронин #собеседование #

КОМЕНТАРІ • 38

  • @MrBeltalowda
    @MrBeltalowda 2 місяці тому +10

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

  • @kruptixx
    @kruptixx 2 місяці тому +1

    Благодарю за интересный контент! всегда интересно посмотреть на джунов и повспоминать питон :)
    def pol(arr: list) -> bool:
    for i in range(len(arr) // 2):
    if arr[i] != arr[-i - 1]:
    return False
    return True
    def version_checker(arr: list) -> object:
    def is_bad(ver: object) -> bool:
    pass
    l_p, r_p = 0, len(arr) - 1
    while 1:
    if is_bad(arr[l_p]):
    return arr[l_p]
    elif is_bad(arr[r_p]):
    if is_bad(arr[curr := (l_p + r_p) // 2]):
    r_p = curr
    else:
    l_p = curr + 1
    continue
    return None

  • @engineer103
    @engineer103 2 місяці тому

    Здравствуйте Андрей смотрю вас уже год и постоянно разбераю ваше интервью большое спасибо!
    Можете ли сказать как я смогу попасть на ваше собеседование

    • @AndyPronin
      @AndyPronin  2 місяці тому +1

      Пока через Практикум. Возможно, сделаю розыгрыш на канале. Но это не точно

    • @marebf3301
      @marebf3301 2 місяці тому

      ​@@AndyPronin, а что за практикум?

    • @AndyPronin
      @AndyPronin  Місяць тому

      @@marebf3301 Яндекс Практикум. Я эти собесы в рамках работы там делаю

  • @runneso
    @runneso 2 місяці тому +3

    def firstBadVersion(n: int) -> int:
    left, right = 0, n
    while (right - left) > 1:
    mid = (left + right) // 2
    if isBadVersion(mid):
    right = mid
    else:
    left = mid
    return right
    def palindromeCheck(array: list[int]) -> bool:
    left, right = 0, len(array) - 1
    while left < right:
    if array[left] != array[right]:
    return False
    left += 1
    right -= 1
    return True

  • @kinozvu4ka848
    @kinozvu4ka848 Місяць тому

    А куда в личку писать за промокодом?) И могу ли я его применить вместе с подарочным сертификатом например для обучения в практикуме на системного администратора?)

    • @AndyPronin
      @AndyPronin  Місяць тому

      andpronin телеграм. Попытка не пытка) можно попробовать. Вдруг сработает

  • @madiarashkenov2304
    @madiarashkenov2304 День тому

    def check_palindrom(lst):
    if len(lst) == 1 or len(lst) == 0:
    return True
    if lst[0] != lst[-1]:
    return False
    return check_palindrom(lst[1:-1])
    test_lst = [1, 3, 1, 1, 3, 1]
    print(check_palindrom(test_lst))

  • @Gesauriel
    @Gesauriel 13 днів тому +1

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

  • @Chel1k7
    @Chel1k7 2 місяці тому

    с его условием в цикле while start != end, при четном кол-ве элементов будет падать ошибка out of range, потому что условие не выполнится при палиндроме. Как такое можно было пропустить, Андрей))

    • @AndyRoid1986
      @AndyRoid1986 2 місяці тому

      тоже об этом подумал , поэтому ограничил до середины списка проверку, чтобы старт в конец не ушел и енд в начало

    • @Chel1k7
      @Chel1k7 2 місяці тому +2

      @@AndyRoid1986там просто нужно сделать while start < end:

    • @AndyPronin
      @AndyPronin  Місяць тому

      Косяк( чуйка подсказала про аут оф рейндж, но сходу не сообразил.

  • @NightoSan
    @NightoSan 2 місяці тому

    как сделать так что бы подсвечивались варианты в IDE ?

    • @AndyPronin
      @AndyPronin  Місяць тому

      Продкючить нейросети

  • @madiarashkenov2304
    @madiarashkenov2304 День тому

    def version_checker(version):
    if version

  • @AndyRoid1986
    @AndyRoid1986 2 місяці тому

    Сделал так:
    def fpolyn(l=list)->bool:
    p=-1 # указатель на элемент списка
    zn=True # значение
    for i in range(len(l)//2):
    if l[i]!=l[p]:
    zn=False
    break
    else:
    p-=1
    return zn

    • @Chel1k7
      @Chel1k7 2 місяці тому +1

      Коряво сделал, подумай еще:)

    • @AndyRoid1986
      @AndyRoid1986 2 місяці тому

      Ну или через ваил;
      def fpolyn2(l=list)->bool:
      i=0 # указатель сначала
      p=-1 # указатель с конца
      zn=True # значение
      while len(l)!=0 and l[i]==l[p] and i!=len(l)//2: # проверка до середины списка
      i+=1 # пока совпадает сдвигаем указатели
      p-=1
      if l[i]!=l[p]:
      zn=False
      return zn

    • @Chel1k7
      @Chel1k7 2 місяці тому

      @@AndyRoid1986 пипец ты усложняешь))

    • @AndyRoid1986
      @AndyRoid1986 2 місяці тому +1

      @@Chel1k7 20 лет простоя после паскаля в универе, не претендую на профа))) радует, что уже работает то что я накалякал

  • @bunasha
    @bunasha 2 місяці тому

    Багованный модуль равномерно распределен с независимыми случайными приращениями. Ты не докажешь факт корреляции между багованными модулями, что если один модуль багован, то все последующие также багованны. А если корреляция есть, т.е. тебе однозначно известно как выглядит баг, ты можешь просто прочитать модуль как текстовый файл и найти в нем данный баг. Он на чтение млнонов символов и сопоставление с щаблоном бага потратит менее секунды и туфта с бинарным поиском не нужна. У тебя же не трлн версий модуля. Смысла лепить этот поиск не нужно там, где он не нужен.

    • @MrBeltalowda
      @MrBeltalowda 2 місяці тому

      man git bisect

    • @WDemidenko
      @WDemidenko 18 днів тому

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

  • @user-zb3wv3jl5b
    @user-zb3wv3jl5b 2 місяці тому

    def func(x):
    if len(x) % 2 == 0:
    return False
    left = 0; right = len(x)//2 + 1
    while right < len(x):
    if x[left] != x[right]:
    return False
    left += 1; right += 1
    return True

    • @runneso
      @runneso 2 місяці тому

      Палиндром может быть чётной длины [1,2,2,1]

    • @user-zb3wv3jl5b
      @user-zb3wv3jl5b 2 місяці тому

      @@runneso
      def func(x):
      if len(x) == 0:
      return False
      left = 0; right = len(x)//2 + 1 if len(x) % 2 != 0 else len(x)//2
      while right < len(x):
      if x[left] != x[right]:
      return False
      left += 1; right += 1
      return True

    • @ThembaKai
      @ThembaKai Місяць тому

      def is_palindorme(lst):
      left = 0
      right = len(lst) - 1
      while left < right:
      if lst[left] != lst[right]:
      return False
      left += 1
      right -= 1
      return True

  • @user-fq2hr1pu5e
    @user-fq2hr1pu5e Місяць тому +1

    return spisok == spisok[::-1]

    • @user-he4st2ro5h
      @user-he4st2ro5h 18 днів тому

      Не занимайся программированием, не трать время)

    • @user-fq2hr1pu5e
      @user-fq2hr1pu5e 5 днів тому

      @@user-he4st2ro5h что не так в моем ответе? Список нельзя перевернуть и так проверить полиндром или нет?

  • @judg3Grady
    @judg3Grady Місяць тому +2

    Чел отучился на Яндекс Практикуме и не может написать алгоритм поиска палинрома? Серьезно? Ну и с бинпоиском любой недостажер легко должен справляться. Ни первый, ни второй собеседуемые не тянут на стажеров, не говоря уже о каком-то более высоком уровне.

  • @luckytima2315
    @luckytima2315 Місяць тому +1

    Очередные нулевый питонисты, который привыкли юзать библиотечные методы не понимая реализаций

    • @user-he4st2ro5h
      @user-he4st2ro5h 18 днів тому

      А чего ты ожидал от чувака после курсов?

  • @fight_me-
    @fight_me- 2 місяці тому

    Вот такие штуки получились
    def palindrome(numbers: list[int]) -> bool:
    pointer: int = -1
    for idx in range(len(numbers)//2):
    if numbers[idx] == numbers[pointer]:
    pointer -= 1
    else:
    return False
    return True
    def get_bad_version(versions: list[int]) -> int:
    low: int = 0
    high: int = len(versions) - 1
    while high > low:
    mid: int = (low + high) // 2
    if is_bad_version(versions[mid]):
    high = mid
    else:
    low = mid + 1
    return low

    • @fight_me-
      @fight_me- 2 місяці тому +1

      Если я, конечно, правильно понял, что после первой плохой версии, все последующие тоже будут плохими