Порридж В Ко-ливинге
Я вот вообще не удивлюсь, что 80% кода в FAANG пишет 20% программистов
Viktor
Viktor
Такое впечатление создаётся из-за ютуберов, но их очень мало ж относительно всех разработчиков фаанга.
Viktor
Но идея хайпануть не новая, тот же Клемент построил свой алгоэксперт ровно на этом. Всякие техлиды хайпятся как не в себя.
Порридж В Ко-ливинге
Крутая задачка, O(N^2) не прокатывает
https://leetcode.com/problems/word-ladder/
Evgeniy
На 22 тесте выдаёт TLE
Порридж В Ко-ливинге
Alex Azarov
Слушайте, а есть какой-то план или порядок в каком вы решаете задачи?
Я пока просто в разнобой или по подборкам в explore
Порридж В Ко-ливинге
Порридж В Ко-ливинге
Я уже на Хард. Сижу туплю
Alex Azarov
А нужно ли хард решать?)
Мы всё-таки не на Staff Developer целимся
Порридж В Ко-ливинге
Порридж В Ко-ливинге
Надеюсь когда хард решу открою уже премиум и буду по компаниям решать
Evgeniy
Lynn «Кофеман»
Моя первая задачка на литкоде =)
Lynn «Кофеман»
Порридж В Ко-ливинге
((9(
Порридж В Ко-ливинге
Lynn «Кофеман»
Обходом в ширину
Порридж В Ко-ливинге
Просто по тому, что 1 символ меняется?
Lynn «Кофеман»
Я не делал дерево.
Порридж В Ко-ливинге
За какую сложность? Я за O(N^2), но TLE
Lynn «Кофеман»
У меня есть такая прекрасная вспомогательная функция =)
Порридж В Ко-ливинге
Я не делал дерево.
Ну, я тоже. Я имею ввиду по какой логике шли? Сравнивали что слова на 1 букву отличаются? Как сравнивали?
Lynn «Кофеман»
Вот эта функция выше из слова hit делает регулярку
/^(?:.it|h.t|hi.)$/ которая матчит все слова отличающиеся на одну букву.
Порридж В Ко-ливинге
Lynn «Кофеман»
Нет. Я запихал его в Set. И выкидывал уже пройденные слова
Порридж В Ко-ливинге
Lynn «Кофеман»
Возможно.
Порридж В Ко-ливинге
class Solution:
def diffOneChar(self, w1: str, w2: str) -> bool:
return sum(ch1 != ch2 for ch1, ch2 in zip(w1, w2)) == 1
def ladderLength(self, b: str, e: str, w: List[str]) -> int:
stack = [b]
check = set(w)
counter = 1
while stack:
counter += 1
temp = []
for word in stack:
for checkWord in check:
if self.diffOneChar(word, checkWord):
temp.append(checkWord)
stack = temp
check -= set(stack)
if e in stack:
return counter
return 0
Lynn «Кофеман»
Ну по сути у меня такой же алгоритм. Возможно тут много лишних действий. Например в diffOneChar можно сэкономить если написать честный цикл и выходить из него как только разница больше одного, а не перебирать все буквы. Ну и всякие вычитания множеств это же по сути тоже скрытый цикл
Порридж В Ко-ливинге
Господи, питон можно любить хотя бы за то, что ВСЕ контейнеры имеют похожий интерфейс с in
Хоть 123 in [123,456,789]
Хоть 123 in {123,654,789}
Хоть 123 in {123: 6, 543: 8, 888: 0}
Порридж В Ко-ливинге
Lynn «Кофеман»
Ну я выкидывал из множества сразу как находил. Правда в js это безопасная операция, а как в питоне я не знаю
Порридж В Ко-ливинге
Roman
Порридж В Ко-ливинге
Roman
Гоу
Порридж В Ко-ливинге
На плюсах прошло:
https://pastebin.com/AtbKkSLQ
Порридж В Ко-ливинге
Вот еще одно преимущество питона в том, что кодик маленький, не загруженный ничем лишним, и его можно в чатик кинуть, и впринципе нормально будет.
А если плюсовой код кидать, то это капец. Там будет плато текста со скобками и прочей дичью
Порридж В Ко-ливинге
Lynn «Кофеман»
Ну может питон просто медленный? 😀
Попробуй поиск с двух сторон, хотя писать его будет сложнее
Порридж В Ко-ливинге
Порридж В Ко-ливинге
Я уже разобрался на плбсах
https://pastebin.com/AtbKkSLQ
Viktor
Подучилось громоздко и многословно
Viktor
Порридж В Ко-ливинге
Viktor
Viktor
Viktor
по идее, должно
Порридж В Ко-ливинге
Viktor
Порридж В Ко-ливинге
Хотя в гугол и фронтов могут хардами кошмарить
Viktor
Viktor
чтобы Бену было что хейтить на ютубе 😉
Порридж В Ко-ливинге
Viktor
Viktor
Viktor
Lynn «Кофеман»
N^2
В худшем случае ты всё равно сравнишь все со всеми
Порридж В Ко-ливинге
Порридж В Ко-ливинге
Порридж В Ко-ливинге
Lynn «Кофеман»
L же константа и в оценке не учитывается
Viktor
Это питоновский который TLE
O(N^2)
Ага. Ясно. Я почему упустил суть разговора и подумал, что ты не понимаешь почему TLE, хотя сам же говорил выше, что квадрат не пройдёт.
Порридж В Ко-ливинге
Порридж В Ко-ливинге
Очень похожи алгоритм.