Zen of Python
20.2K subscribers
1.2K photos
161 videos
32 files
3.14K links
Полный Дзен Пайтона в одном канале

Разместить рекламу: @tproger_sales_bot

Правила общения: https://tprg.ru/rules

Другие каналы: @tproger_channels

Сайт: https://tprg.ru/site

Регистрация в перечне РКН: https://tprg.ru/xZOL
Download Telegram
Словари в Python: 12 задач для начинающих с решениями

Предлагаем вам решить несколько задач, которые помогут вам прокачать навыки работы со словарями, а также научиться правильно работать с методами get(), setdefault(), генераторами словарей и лямбда-функциями:

https://proglib.io/p/slovari-v-python-12-zadach-dlya-nachinayushchih-s-resheniyami-2022-01-28

#задачи #словари
👍9🔥4
5 задач по Python для новичков

Начали осваивать Python? Закрепите знания, решив несколько задач. В этой статье собрали для вас 5 интересных задач с решениями, чтобы вы могли проверить свои силы:

https://proglib.io/p/5-zadach-po-python-dlya-novichkov-s-resheniyami-2022-03-15

#задачи #начинающим
👍3
Задача коммивояжёра — точное решение через метод целочисленного линейного программирования

Если коротко, задача комивояжёра — это классический пул задач на поиск кратчайшего маршрута среди нескольких городов. Или маршрута по городу. В общем — это задачи о том, как принимать решения в ситуациях со множеством переменных.

Задачу коммивояжёра можно решить несколькими способами. Например, простым перебором. Но чем больше будет городов, тем медленнее будет расчёт. Уже на 10 городах мы получим миллионы выполнений цикла. А на 13 городах таких — уже несколько миллиардов, и компьютер может их считать неделю и даже больше.

Чуть более оптимальное решение — метод динамического программирования и метод ветвей и границ. Результат получается неплохой, но всё равно он слабоват.

Вот интересная статья, которая показывает, что точное решение этой задачи можно получить гораздо более оптимальным способом. Всё с понятными объяснениями и кодом на Python: https://habr.com/ru/post/711708/

#задачи
🤯11👍5🔥4
Leetcode 934: Разбор задачи на Python с использованием dfs + bfs

Вообще, LeetCode — это онлайн-платформа с алгоритмическими задачами по программированию, своего рода тренажёр для подготовки к техническим собеседованиям. Считается, что если регулярно с ним заниматься, то через полгода ваши шансы устроиться в бигтех.

На практике конечно, там много нюансов, но это и не важно! Давайте пока просто познакомимся с типичной задачкой и попробуем её решить.

Вам дана двоичная матрица размера n x n, где 1 представляет сушу, а 0 представляет воду. Остров — это 4-направленно связанная группа 1, не связанная ни с какими другими 1. В сетке ровно два острова. Вы можете изменить 0 на 1, чтобы соединить два острова в один остров.

Как найти наименьшее количество нулей, которое нужно перевернуть, чтобы соединить два острова?

Решение разобрали здесь: https://tproger.ru/articles/leetcode-934-razbor-zadachi-s-ispol-zovaniem-dfs-bfs/

#задачи
👍11👎1
Кстати, про литкод: определяем ваш уровень решения LeetCode задач от 1 до 5

Недавно я уже писал про интересную статью, в которой рассмотрели решение одной из сложных задач с платформы. Напомню, что LeetCode — это своего рода тренажёр по всяким заковыристым алгоритмическим задачам для подготовки к техническим собеседованиям.

И вот ещё более интересная статья про реальный опыт с LeetCode и (внимание!) подготовке к интервью в FAANG подобные компании путём разбиения её на уровни.

Цифры местами грубые, утверждения субъективные, но очень советую к прочтению, если интересуетесь темой: https://habr.com/ru/post/713498/

#задачи
👍16