Сам джун и был в шоке с фразы "Забыл логику работы While". Моя реализация первой задачи: def is_palindrome(some_list:list) -> bool: """Takes a list and return True if palindrome""" for i, item in enumerate(some_list): if item == some_list[-i - 1]: continue else: return False return True
@kruptixx6 ай бұрын
Благодарю за интересный контент! всегда интересно посмотреть на джунов и повспоминать питон :) 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
@MrBeltalowda6 ай бұрын
грустно смотреть, когда кандидаты тривиальные задачки на палиндром или бисект решить не могут
@AndyRoid19866 ай бұрын
Сделал так: 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
@Chel1k76 ай бұрын
Коряво сделал, подумай еще:)
@AndyRoid19866 ай бұрын
Ну или через ваил; 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
@Chel1k76 ай бұрын
@@AndyRoid1986 пипец ты усложняешь))
@AndyRoid19866 ай бұрын
@@Chel1k7 20 лет простоя после паскаля в универе, не претендую на профа))) радует, что уже работает то что я накалякал
@engineer1036 ай бұрын
Здравствуйте Андрей смотрю вас уже год и постоянно разбераю ваше интервью большое спасибо! Можете ли сказать как я смогу попасть на ваше собеседование
@AndyPronin6 ай бұрын
Пока через Практикум. Возможно, сделаю розыгрыш на канале. Но это не точно
@marebf33016 ай бұрын
@@AndyPronin, а что за практикум?
@AndyPronin6 ай бұрын
@@marebf3301 Яндекс Практикум. Я эти собесы в рамках работы там делаю
@kinozvu4ka8485 ай бұрын
А куда в личку писать за промокодом?) И могу ли я его применить вместе с подарочным сертификатом например для обучения в практикуме на системного администратора?)
@AndyPronin5 ай бұрын
andpronin телеграм. Попытка не пытка) можно попробовать. Вдруг сработает
@Gesauriel4 ай бұрын
Сколько не захожу в комменты на этом канале, всё время говном в интервьюируемого кидают. Вроде в айтишечки на каждом углу кричат про софты. Походу, не зря кричат.
@runneso6 ай бұрын
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
@Chel1k76 ай бұрын
с его условием в цикле while start != end, при четном кол-ве элементов будет падать ошибка out of range, потому что условие не выполнится при палиндроме. Как такое можно было пропустить, Андрей))
@AndyRoid19866 ай бұрын
тоже об этом подумал , поэтому ограничил до середины списка проверку, чтобы старт в конец не ушел и енд в начало
@Chel1k76 ай бұрын
@@AndyRoid1986там просто нужно сделать while start < end:
@AndyPronin6 ай бұрын
Косяк( чуйка подсказала про аут оф рейндж, но сходу не сообразил.
@madiarashkenov23044 ай бұрын
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))
@NightoSan6 ай бұрын
как сделать так что бы подсвечивались варианты в IDE ?
@AndyPronin6 ай бұрын
Продкючить нейросети
@madiarashkenov23044 ай бұрын
def version_checker(version): if version
@bunasha6 ай бұрын
Багованный модуль равномерно распределен с независимыми случайными приращениями. Ты не докажешь факт корреляции между багованными модулями, что если один модуль багован, то все последующие также багованны. А если корреляция есть, т.е. тебе однозначно известно как выглядит баг, ты можешь просто прочитать модуль как текстовый файл и найти в нем данный баг. Он на чтение млнонов символов и сопоставление с щаблоном бага потратит менее секунды и туфта с бинарным поиском не нужна. У тебя же не трлн версий модуля. Смысла лепить этот поиск не нужно там, где он не нужен.
@MrBeltalowda6 ай бұрын
man git bisect
@WDemidenko5 ай бұрын
По сути задача может звучать так, есть отсортированный(от большего к меньшему) список 1 и 0, и нужно найти первое появление 0 методом дерева.
@СергейМасленников-б3в4 ай бұрын
poly :: Eq a => [a] -> Bool poly [] = True poly [_] = True poly (x:xs) = if (x /= last xs) then False else poly (init xs)
@СашаКаспрук-ш4и6 ай бұрын
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
@runneso6 ай бұрын
Палиндром может быть чётной длины [1,2,2,1]
@СашаКаспрук-ш4и6 ай бұрын
@@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
@fearruxx6 ай бұрын
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
@ИосифВазагаев6 ай бұрын
return spisok == spisok[::-1]
@АлекСневар5 ай бұрын
Не занимайся программированием, не трать время)
@ИосифВазагаев4 ай бұрын
@@АлекСневар что не так в моем ответе? Список нельзя перевернуть и так проверить полиндром или нет?
@judg3Grady6 ай бұрын
Чел отучился на Яндекс Практикуме и не может написать алгоритм поиска палинрома? Серьезно? Ну и с бинпоиском любой недостажер легко должен справляться. Ни первый, ни второй собеседуемые не тянут на стажеров, не говоря уже о каком-то более высоком уровне.
@luckytima23156 ай бұрын
Очередные нулевый питонисты, который привыкли юзать библиотечные методы не понимая реализаций