С выпускниками Практикума записали мок-интервью решения одной популярной задачки: как превратить словарь в список ключ-значение.
Запись здесь: https://www.youtube.com/watch?v=wTpT0vGgCcg
У задачи есть несколько решений:
- с использованием генераторов:
- рекурсивное;
- не рекурсивное.
- с использование списков:
- рекурсивное;
- не рекурсивное.
Для успешного решения задачи нужно:
- знать про мутабельные/иммутабельные объекты;
- отличать рекурсию от обхода в цикле;
Самые популярные вопросы:
- что происходит при создании ключа:
- "a" + "." + "b";
- "."(["a", "b"]);
- как сохраняется результат вычисления пар ключ-значения.
Сама запись - это небольшой тест-драйв как проводить интервью в ютубе:
- у всех участников должны быть микрофоны;
- желательно видео записывать в несколько потоков;
- должно быть самое главное, доска где студент решает задачу;
#python #интервью
Запись здесь: https://www.youtube.com/watch?v=wTpT0vGgCcg
У задачи есть несколько решений:
- с использованием генераторов:
- рекурсивное;
- не рекурсивное.
- с использование списков:
- рекурсивное;
- не рекурсивное.
Для успешного решения задачи нужно:
- знать про мутабельные/иммутабельные объекты;
- отличать рекурсию от обхода в цикле;
Самые популярные вопросы:
- что происходит при создании ключа:
- "a" + "." + "b";
- "."(["a", "b"]);
- как сохраняется результат вычисления пар ключ-значения.
Сама запись - это небольшой тест-драйв как проводить интервью в ютубе:
- у всех участников должны быть микрофоны;
- желательно видео записывать в несколько потоков;
- должно быть самое главное, доска где студент решает задачу;
#python #интервью
YouTube
Тестовое интервью. Дима. 2023-04-30
Решение задачи на генерацию списка
00:20 Немного обо мне
00:35 Формулировка задания
00:50 Предлагаемое решение
01:30 Оценка сложности решения
05:00 Решение задачи
00:20 Немного обо мне
00:35 Формулировка задания
00:50 Предлагаемое решение
01:30 Оценка сложности решения
05:00 Решение задачи
👍3👏1
🔍 Метод двух указателей: прокачиваем навыки через палиндромы
🤔 Многие начинающие разработчики решают задачу проверки палиндрома простым способом:
❌ Недостатки такого подхода:
- Дополнительная память O(n) для копии строки
- Невозможность пропускать спецсимволы на лету
- Сложность модификации для более сложных случаев
- Отсутствие возможности раннего выхода при несовпадении
✅ Метод двух указателей даёт нам:
- Работу без дополнительной памяти O(1)
- Гибкость в обработке специальных случаев
- Возможность раннего выхода
- Прокачку важных навыков программирования
🎯 Навыки, которые прокачиваем:
- Работа с циклами и индексами
- Граничные условия
- Логические выражения
- Оптимизация кода
📚 Варианты задач с возрастающей сложностью:
1️⃣ Базовый палиндром (`abcba`)
💪 Прокачка: индексы, цикл while, условия выхода
2️⃣ Палиндром со спецсимволами (`a b,. cb. a`)
💪 Прокачка: вложенные циклы, строковые методы, edge cases
🔗 Задача: https://leetcode.com/problems/valid-palindrome
3️⃣ Поиск самого длинного палиндрома
- с помощью перебора
- и с поиском от центра (оптимизированный способ)
💪 Прокачка: Вложенные циклы for, срезы строк, работа со списками, Оптимизация алгоритма, работа с множествами, list comprehension
🔗 Задача: https://leetcode.com/problems/longest-palindromic-substring
⭐️ Бонус: Попробуйте решить задачу поиска самого длинного палиндрома в строке обоими способами (перебор и от центра) и сравните производительность!
#programming #algorithms #coding #interview #python #palindrome
🤔 Многие начинающие разработчики решают задачу проверки палиндрома простым способом:
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
LeetCode
Valid Palindrome - LeetCode
Can you solve this real interview question? Valid Palindrome - A phrase is a palindrome if, after converting all uppercase letters into lowercase letters and removing all non-alphanumeric characters, it reads the same forward and backward. Alphanumeric characters…
👍9✍1🔥1