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

Ссылка на канал: @class_python
Download Telegram
class Python
📌Сортировка подсчетом 🧮Сортировка подсчетом используется для сортировки целых чисел в диапазоне от 0 до некоторой константы k. Идея заключается в подсчёте вхождения каждого элемента и использования этой информации для сортировки. Хотя сложность алгоритма…
📌Задача на сортировку подсчетом

k-й порядковой статистикой массива называется такой его элемент, который является
k-м элементом массива в отсортированном порядке.

Функция multiple_push_back(a, c, x) добавляет в конец массива a c копий элемента x.

Вам дан массив целых чисел, к которому несколько раз применяют функцию multiple_push_back.

Требуется найти k-ю порядковую статистику в итоговом массиве. Элементы массива индексируются с единицы.

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

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

class Python
👍2
📌Явная типизация

Первые упоминания о подсказках типов в языке программирования Python появились в базе Python Enhancement Proposals (PEP-483).

Для
описания сложных типов можно использовать модуль typing (📚документация), хотя начиная с версии Python 3.9 можно обойтись и без него. Полное описание этого нововведения можно прочитать тут.

👇Переходи по кнопке, изучи больше и потренируйся

#junior #типизация

class Python
👍6🔥1
📌Оценка сложности алгоритмов

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

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

↪️ Например, 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