class Python
11.3K subscribers
1.37K photos
15 videos
9 files
589 links
Первый журнал о Python

Ссылка на канал: @class_python
Download Telegram
📌Оценка сложности алгоритмов

Сколько времени потребуется твоему алгоритму на обработку массива из десяти элементов? Тысячи? Десяти миллионов?

Сложность алгоритмов обычно оценивают по времени выполнения или по используемой памяти. При этом важна лишь асимптотическая сложность

↪️ Например, O(N) говорит о том, что алгоритм имеет линейное время выполнения и потребует (асимптотически) не более n шагов.

#junior #алгоритмы

class Python
👍8
This media is not supported in your browser
VIEW IN TELEGRAM
📌Поиск в глубину

Обход в глубину ( Depth-First Search, DFS) — один из основных методов обхода графа, часто используемый например для проверки связности. В результате поиска в глубину находится лексикографически первый путь в графе.

⌛️Алгоритм работает за O(#вершин + #ребер)

Чтобы прочитать больше, попробовать реализовать алгоритм или увидеть реализацию, переходи по кнопке 👇

#junior #алгоритмы

class Python
👍10❤‍🔥1👎1
💥 Задача на поиск в глубину

Дан ориентированный граф. Путем в графе назовем последовательность вершин v_1, v_2 . . . v_k такую, что для любого i < k в графе есть ребро из вершины v_i в вершину v_i+1

Определите сколько в графе пар вершин (s, t), для которых существует хотя бы один путь между ними, то есть такой путь, в котором где v_1 = s и v_k = t.

👇Появилась идея? Переходи по кнопке, чтобы реализовать ее и пройти все тесты!

#junior #алгоритмы

class Python
👍9
🧩Разбор задачи на поиск в глубину

Подготовили подробный разбор задачи вместе с кодом. Чтобы разобраться, переходи по кнопке👇

#junior #алгоритмы

class Python
8👍5
📌 Класс Counter

🧮 Часто бывает нужно определить количество вхождений или определить наиболее (наименее) часто встречающиеся элементы. Для этого можно использовать объекты класса Counter

Класс Counter является специализированным классом контейнеров. Он содержится в стандартной библиотеке collections (документация) 📄

#junior #словари

class Python
👍24
📌 Задача с технического интервью

🤔
Реализуйте RLE (кодирование длин серий): кодируйте каждый символ количеством раз, которое он появляется последовательно.

Ввод: 'aaaabbbcca'
Вывод: [('a', 4), ('b', 3), ('c', 2), ('a', 1)]

Попробуй решить и проверь себя 👇

#junior #строки

class Python
👍184🔥2👏1
📌Форматирование чисел для вывода

1️⃣ Часто возникает необходимость отформатировать число для вывода, контролируя количество знаков, включение разделителя для разрядов и т. д.

В этом случае удобно использовать встроенную функцию format(). Рассказываем, как ей пользоваться👇

#junior #строки

class Python
👍228🤯2
📌 Комбинаторика в модуле itertools

🤔 Представим, что тебе нужно сгенерировать всевозможные пин-коды, состоящие из 4 цифр. А если цифры не могут повторяться?

Поможет библиотека itertools, которая, начиная с версии Python 2.2, предоставляет множество средств для генерирования комбинаторных объектов.

Подробный обзор библиотеки с примерами и упражнениями уже доступен по кнопке 🚨

#junior #библиотеки

class Python
17👍84🔥1🤯1
📌 Основные операции над множествами

Множества - это изменяемые коллекции неизменяемых объектов. Внутри множества элементы не повторяются.

Множества поддерживают математические операции. Разбираемся, как это работает 👇

#junior #множества

class Python
👍2953🤯3
📌 Упорядоченные словари

🧐 Часто бывает необходимо создать словарь, который позволит контролировать порядок элементов при итерировании по нему или при сериализации.

Для этого можно использовать OrderedDict из модуля collections (документация). ⚠️Однако нужно помнить, что OrderedDict потребляет почти в два раза больше памяти, чем обычный словарь.

#junior #словари

class Python
👍263🔥3
class Python
📌Поиск в глубину Обход в глубину ( Depth-First Search, DFS) — один из основных методов обхода графа, часто используемый например для проверки связности. В результате поиска в глубину находится лексикографически первый путь в графе. ⌛️Алгоритм работает за…
This media is not supported in your browser
VIEW IN TELEGRAM
📌Поиск в ширину

Мы уже рассказали тебе о поиске в глубину. Но оказывается есть еще один алгоритм для обхода графов - Обход в ширину ( Breadth-First Search, BFS) 📏

Но BFS оперирует не стеком, а очередью. То есть в то время как глубинный поиск "идет напролом", поиск в ширину аккуратно изучает все в пределах одного шага 🤓

⌛️Алгоритм работает за O(#вершин + #ребер) и часто используется для поиска кратчайшего пути между двумя вершинами

💥👇Переходи по кнопке, чтобы узнать подробности и самому запустить поиск на графе

#junior #алгоритмы

class Python
10👍10🔥3🤯1
📌 Задача на поиск в ширину

🧐 Дан неориентированный граф и две его вершины a и b.
Необходимо найти кратчайший путь между этими вершинами:

a = 1
b = 4
graph = {1:[2,3], 2:[1,4], 3:[1,4], 4:[2,3]}
find_path(graph,a,b)

>>> [1, 2, 4]


👇Появилась идея? Переходи по кнопке, чтобы реализовать ее и пройти все тесты!

#junior #алгоритмы

class Python
👍12🤯83
📌 Срезы строк

Когда мы работаем со строками в программировании, из них регулярно приходится извлекать некую часть.

Разбираемся, как это сделать

#junior #строки

class Python
🔥24👍143🤯3
📌 Рекурсия

Рекурсивная функция — это та, которая вызывает сама себя. Рекурсию не очень просто понять при первом знакомстве, но без ее понимания в разработке будет тяжело.

🎯 В этом материале:
рассмотрим как работает рекурсия
разберем пример рекурсивного вычисления суммы списка
ты сможешь сам написать рекурсию и проверить себя в помощью нашей тестовой системы

#функции #junior

class Python
🔥17👍76🤯2
📌 Разница между “is” и “==”

В Python есть два очень похожих оператора для проверки равенства двух объектов. Эти два оператора is и ==. Их часто путают и это является источником багов.

На самом деле все просто:

👉 оператор == проверяет равенство значений двух объектов
👉 оператор is проверяет идентичность самих объектов

#junior #функции

class Python
👍373👏2🤯2💯1
🎯 Задача про одинокие числа

Мы подготовили для тебя интересную задачу, в которой есть и технические, и алгоритмические тонкости. Ее условие в картинке 👆

🧩 Если у тебя получилось придумать эффективное решение, то скорее реализуй его и попробуй пройти все наши тесты !

💡 Если затрудняешься, то можешь посмотреть подробный разбор в этой заметке.

#junior #задачи

class Python
👍128🤯3
📆 5 главных приемов для работы с датами

Python содержит несколько инструментов, которые разработчик может использовать для работы с датой и временем. Главные из них - это модули datetime и time.

Предлагаем вместе разобраться, как решить несколько самых распространенных задач по работе с датами. В этом материале мы собрали для тебя код (который ты можешь запустить) с объяснениями 🙌

#junior #библиотеки

class Python
👍20🤯3💯1
Forwarded from class Python
📌 Разница между “is” и “==”

В Python есть два очень похожих оператора для проверки равенства двух объектов. Эти два оператора is и ==. Их часто путают и это является источником багов.

На самом деле все просто:

👉 оператор == проверяет равенство значений двух объектов
👉 оператор is проверяет идентичность самих объектов

#junior #функции

class Python
8👍4🤪4🙈1