Yet another app
341 subscribers
57 photos
4 videos
24 links
Технологии, команды, проекты
Download Telegram
С выпускниками Практикума записали мок-интервью решения одной популярной задачки: как превратить словарь в список ключ-значение.

Запись здесь: https://www.youtube.com/watch?v=wTpT0vGgCcg

У задачи есть несколько решений:

- с использованием генераторов:
- рекурсивное;
- не рекурсивное.
- с использование списков:
- рекурсивное;
- не рекурсивное.

Для успешного решения задачи нужно:

- знать про мутабельные/иммутабельные объекты;
- отличать рекурсию от обхода в цикле;

Самые популярные вопросы:

- что происходит при создании ключа:
- "a" + "." + "b";
- "."(["a", "b"]);
- как сохраняется результат вычисления пар ключ-значения.

Сама запись - это небольшой тест-драйв как проводить интервью в ютубе:

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

#python #интервью
👍3👏1
🔍 Метод двух указателей: прокачиваем навыки через палиндромы

🤔 Многие начинающие разработчики решают задачу проверки палиндрома простым способом:


def is_palindrome_simple(s):
return s == s[::-1] # или s == ''.join(reversed(s))


Недостатки такого подхода:
- Дополнительная память O(n) для копии строки
- Невозможность пропускать спецсимволы на лету
- Сложность модификации для более сложных случаев
- Отсутствие возможности раннего выхода при несовпадении

Метод двух указателей даёт нам:
- Работу без дополнительной памяти O(1)
- Гибкость в обработке специальных случаев
- Возможность раннего выхода
- Прокачку важных навыков программирования

🎯 Навыки, которые прокачиваем:
- Работа с циклами и индексами
- Граничные условия
- Логические выражения
- Оптимизация кода

📚 Варианты задач с возрастающей сложностью:

1️⃣ Базовый палиндром (`abcba`)


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


💪 Прокачка: индексы, цикл while, условия выхода

2️⃣ Палиндром со спецсимволами (`a b,. cb. a`)
💪 Прокачка: вложенные циклы, строковые методы, edge cases
🔗 Задача: https://leetcode.com/problems/valid-palindrome

3️⃣ Поиск самого длинного палиндрома ddaabcbaaee

- с помощью перебора
- и с поиском от центра (оптимизированный способ)

💪 Прокачка: Вложенные циклы for, срезы строк, работа со списками, Оптимизация алгоритма, работа с множествами, list comprehension
🔗 Задача: https://leetcode.com/problems/longest-palindromic-substring

⭐️ Бонус: Попробуйте решить задачу поиска самого длинного палиндрома в строке обоими способами (перебор и от центра) и сравните производительность!

#programming #algorithms #coding #interview #python #palindrome
👍91🔥1