🌸 До 14 мая скидка на курсы по Python от 15 000 до 30 000 рублей: ru.hexlet.io/link/wLBgoM 🔥 Бесплатный курс «Основы Python» от Хекслета. Начните в любое время: ru.hexlet.io/link/5Vq2jV ✅ Полезные вебинары по программированию каждую неделю: ru.hexlet.io/link/Uqrgvw 00:00:00 интро 00:00:20 занимался проектированием электростанций, обучился в августе 2023 и в январе 2024 устроился на работу 00:01:23 пугалки про магические часла 00:03:14 что такое транзакции в базе данных 00:05:03 зачем нужны базы данных 00:06:22 теоретическая задача: как найти записи по диапозону дат в очень старой базе данных 00:09:10 за сколько происходит поиск в бинарном дереве 00:11:10 что такое SOLID 00:13:08 типы данных в Python 00:17:50 асинхронность в Python 00:21:36 зачем в Python многопоточность 00:26:40 что такое Yeild 00:30:03 дескрипторы в Python 00:30:49 как в Django сделать join 00:32:30 строка содержит открывающиеся и закрывающиеся скобки, нужно проверить валидность 01:01:20 есть поезд, который едет с определённой скоростью из пункта A в пункт B и есть воробей, который летит в пункт B быстрее поезда, в пункте B разворачивается, летит обратно к поезду, снова разворачивается до пункта B и повторяет так до тех пор, пока поезд не окажется в пункте B. Сколько километров пролетит воробей в общем? 01:20:20 резюмируем 01:22:36 какие книги по Python прочитать 01:28:25 советы, если хочется уйти в сеньоры
задача про скобки def check_parentheses(_str: str) -> bool: dct = {'{': ')]', '(': ']}', '[': '})'} opening_bracket = 0 for i, bracket in enumerate(_str): if i != len(_str) - 1 and bracket in dct.keys() and not _str[i + 1] in dct[bracket]: opening_bracket +=1 else: opening_bracket -= 1 if opening_bracket < 0: return False return True
Это в общем и не буст даже. Просто возможность не заблокировать напрочь приложение, пока идёт длительное вычисления, периодически самостоятельно возвращая управление event loop'у.
Можно просто на динамически меняющимся счетчике решить если счетчик стал в какой то момент отрицательный то False, если он в конце остался 1 то тоже False ну а если в конце 0 то True
задача про скобки opened_sym=['(','[','{'] closed_sym=['}',']',')'] def check_brackets(st): open_brack=[i for i in st if i in opened_sym] close_brack=[i for i in st if i in closed_sym] return len(open_brack)==len(close_brack)
Групость чистой воды, зачам заставлять учить кандидата тому, что ему никогда не будет нужно, хотите теории, берите на работа жпт, а практика, особенно первой задачи, показала, что они оба не понимают что к чему, вторая лишь подтвердила первый тезис, при котором сидит тело и довольствуется собой от своей глупости
Задачу про скобки можно через рекурсию If _str[0] in open_brackets and _str[-1] in close_brackets: If PAIRS_Brackets[_str[0]]==_str[-1]: return check_brackets(_str[1:-1]) Ну и дописать условия выхода из рекурсии (if len(_str) == 1 or ==2 return True Плюс условия elif return False для условий записать Пиша с телефона тут не удобняк все расписать. Хотя перед кем я оправдываюсь, идите нах.й
Ахах, таким себя тупым почувствовал после задачи с воробьем. Посчитал каждую точку пересечения и сложил сходящийся ряд. А после того как досмотрел понял что птица будет летать вплоть до достижения поездом конца пути, а точки пересечения никто и не просил :D
Задача про скобки: CLOSE_BRACKETS = '}])' OPEN_BRACKETS = '{[(' PAIRS_BRACKETS = {'[]', '{}', '()'} def ckeck_brackets(s: str) -> bool: open_stack = [] close_stack = [] for bracket in s: if bracket in CLOSE_BRACKETS: if not open_stack: return False close_stack.append(bracket) elif bracket in OPEN_BRACKETS: open_stack.append(bracket) else: return False if open_stack and close_stack and (open_stack[-1] + close_stack[-1] in PAIRS_BRACKETS): open_stack.pop() close_stack.pop() if open_stack or close_stack: return False return True увидел потом решение до конца автора, да - 1 список close_stack - можно выкинуть. Про воробья еще не дослушал, но видя ехидную улыбку ведущего понял прикол, спойлерить не буду лишь намекну - время полета воробья нам уже известно из условия задачи :))) ржу не могу
def check_brackets(symbols: str) -> bool: result = [] hash_map = {')': '(', '}': '{', ']': '['} for i in symbols: if i in hash_map.values(): result.append(i) elif i in hash_map.keys(): if result == [] or result.pop() != hash_map[i]: return False return result == []
🌸 До 14 мая скидка на курсы по Python от 15 000 до 30 000 рублей: ru.hexlet.io/link/wLBgoM
🔥 Бесплатный курс «Основы Python» от Хекслета. Начните в любое время: ru.hexlet.io/link/5Vq2jV
✅ Полезные вебинары по программированию каждую неделю: ru.hexlet.io/link/Uqrgvw
00:00:00 интро
00:00:20 занимался проектированием электростанций, обучился в августе 2023 и в январе 2024 устроился на работу
00:01:23 пугалки про магические часла
00:03:14 что такое транзакции в базе данных
00:05:03 зачем нужны базы данных
00:06:22 теоретическая задача: как найти записи по диапозону дат в очень старой базе данных
00:09:10 за сколько происходит поиск в бинарном дереве
00:11:10 что такое SOLID
00:13:08 типы данных в Python
00:17:50 асинхронность в Python
00:21:36 зачем в Python многопоточность
00:26:40 что такое Yeild
00:30:03 дескрипторы в Python
00:30:49 как в Django сделать join
00:32:30 строка содержит открывающиеся и закрывающиеся скобки, нужно проверить валидность
01:01:20 есть поезд, который едет с определённой скоростью из пункта A в пункт B и есть воробей, который летит в пункт B быстрее поезда, в пункте B разворачивается, летит обратно к поезду, снова разворачивается до пункта B и повторяет так до тех пор, пока поезд не окажется в пункте B. Сколько километров пролетит воробей в общем?
01:20:20 резюмируем
01:22:36 какие книги по Python прочитать
01:28:25 советы, если хочется уйти в сеньоры
Собеседование на питон разработчика.
- Начнем с теории... Базы данных:)
а можете объяснить в чем сюр?
@@oppa_na5627 базы данных это не питон.
Это как собеседование на проктолога начинать с вопросов про аномалии работы мозга.
Спасибо за полезный ролик!
Задачу про поезд и воробья же можно решить так?
def sparrow_distance(distance,sp_v,tr_v):
return (sp_v/tr_v)*distance
задача про скобки
def check_parentheses(_str: str) -> bool:
dct = {'{': ')]', '(': ']}', '[': '})'}
opening_bracket = 0
for i, bracket in enumerate(_str):
if i != len(_str) - 1 and bracket in dct.keys() and not _str[i + 1] in dct[bracket]:
opening_bracket +=1
else:
opening_bracket -= 1
if opening_bracket < 0:
return False
return True
Вопрос к автору: а как питоновская многопоточность поможет ему бустануть вычисление числа Пи до миллиардного знака?
Она поможет не заблокировать эвентлуп
@@gaxeliy т.е. это буст относительно асинхронного выполнения, но не относительно обычного синхронного?
@@mihto5202 конкретно в этом кейсе - да
@@mihto5202 в данном кейсе - да
Это в общем и не буст даже. Просто возможность не заблокировать напрочь приложение, пока идёт длительное вычисления, периодически самостоятельно возвращая управление event loop'у.
Можно просто на динамически меняющимся счетчике решить если счетчик стал в какой то момент отрицательный то False, если он в конце остался 1 то тоже False ну а если в конце 0 то True
Тоже покажу решение) (скобки через рекурсию)
brackets = {
'{': '}',
'[': ']',
'(': ')'
}
def check_brackets(string: str) -> bool:
if len(string) == 0:
return True
if brackets[string[0]] in string:
string = string.replace(brackets[string[0]], '', 1)
else:
return False
return check_brackets(string[1:])
задача про скобки
opened_sym=['(','[','{']
closed_sym=['}',']',')']
def check_brackets(st):
open_brack=[i for i in st if i in opened_sym]
close_brack=[i for i in st if i in closed_sym]
return len(open_brack)==len(close_brack)
Плохо... даже на '}{' возвращает True
поиск в бинарном дереве будет линейный!
Интервьюер слабый, для логарифмического времени нужно чтобы дерево было сбалансированным, чего упомянуто не было.
На задачку про воробья плотно попался
Групость чистой воды, зачам заставлять учить кандидата тому, что ему никогда не будет нужно, хотите теории, берите на работа жпт, а практика, особенно первой задачи, показала, что они оба не понимают что к чему, вторая лишь подтвердила первый тезис, при котором сидит тело и довольствуется собой от своей глупости
Задачу про скобки можно через рекурсию
If _str[0] in open_brackets and _str[-1] in close_brackets:
If PAIRS_Brackets[_str[0]]==_str[-1]: return check_brackets(_str[1:-1])
Ну и дописать условия выхода из рекурсии (if len(_str) == 1 or ==2 return True
Плюс условия elif return False для условий записать
Пиша с телефона тут не удобняк все расписать.
Хотя перед кем я оправдываюсь, идите нах.й
😁
И тебе того же.
Ахах, таким себя тупым почувствовал после задачи с воробьем.
Посчитал каждую точку пересечения и сложил сходящийся ряд.
А после того как досмотрел понял что птица будет летать вплоть до достижения поездом конца пути, а точки пересечения никто и не просил :D
А я туда-сюда птичку гонял 🥲
Надо, кажется, налечь на математику
Задача про скобки:
CLOSE_BRACKETS = '}])'
OPEN_BRACKETS = '{[('
PAIRS_BRACKETS = {'[]', '{}', '()'}
def ckeck_brackets(s: str) -> bool:
open_stack = []
close_stack = []
for bracket in s:
if bracket in CLOSE_BRACKETS:
if not open_stack:
return False
close_stack.append(bracket)
elif bracket in OPEN_BRACKETS:
open_stack.append(bracket)
else:
return False
if open_stack and close_stack and (open_stack[-1] + close_stack[-1] in PAIRS_BRACKETS):
open_stack.pop()
close_stack.pop()
if open_stack or close_stack:
return False
return True
увидел потом решение до конца автора, да - 1 список close_stack - можно выкинуть.
Про воробья еще не дослушал, но видя ехидную улыбку ведущего понял прикол, спойлерить не буду лишь намекну - время полета воробья нам уже известно из условия задачи :))) ржу не могу
def check_brackets(symbols: str) -> bool:
result = []
hash_map = {')': '(', '}': '{', ']': '['}
for i in symbols:
if i in hash_map.values():
result.append(i)
elif i in hash_map.keys():
if result == [] or result.pop() != hash_map[i]:
return False
return result == []
"([)]" выйдет true, а должно быть false
Не говоря уже про "))(("
@@gaxeliy не так понял задачу, изменил решение )