arrays.py
-
isunique Определить, есть ли в строке повторяющиеся символы
-
ispermutable Является ли первая строка перестановкой символов второй строки
-
ispalindromable Является ли строка палиндромом после перестановки
-
ismodifiable Находятся ли две строки на расстоянии одной или нуля модификаций. Допустимы три вида модификаций: вставка символа, удаление символа и замена символа
-
replacespace Заменить все пробелы в строке символами '%20'. Длина строки позволяет сохранить дополнительные символы. Фактическая длина строки известна заранее
-
rotate90 Поворот матрицы NxN на 90 градусов
-
compress Сжимать строку с использованием счетчика повторяющихся символов. Например, строка 'aabcccccaaa' превращается в 'a2b1c5a3'. Eсли сжатая строка не становится короче исходной, то возвращать исходную строку. Предполагается, что строка состоит только из букв верхнего и нижнего регистра (a-z)
bitset.py
- Bitset Битовое множество для произвольного числа битов. Реализовать методы get и set по номеру бита
graphs.py
-
DirectedGraph.isConnected Проверить существование маршрута между двумя узлами направленного графа
-
DirectedGraph.allPaths Поиск всех путей между двумя вершинами на направленном циклическом графе
-
PrefixTree.next Поиск всех путей на префиксном дереве
heap.py
- Heap Двоичная куча с задаваемой пользователем функцией сравнения
linked.py
- Linked Односвязный список. Метод добавления элемента в начало списка. Метод обращения списка без использования дополнительной памяти
lists.py
-
getrevitem Найти в односвязном списке k-ый с конца элемент
-
removedup Удалить дубликаты из несортированного связного списка (без использования дополнительной памяти)
-
removedup2 Удалить дубликаты из несортированного связного списка
-
removenode Удалить элемент из середины связного списка. Доступ предоставляется только к этому узлу
-
ispalindrome Является ли связный список палиндромом
-
sumlists Суммировать два числа, представленных в виде связных списков. Каждый узел такого списка представляет один разряд, все цифры хранятся в обратном порядке. Результат возвращать также в виде связного списка
-
findcycle Найти для кольцевого связного списка начальный узел петли
problems.cc
- getmax Найти максимальное из двух чисел без использования if/else и любых операций сравнения
queues.py
-
MinStack Стек, в котором кроме push и рор будет поддерживаться функция min, возвращающая минимальный элемент. Все методы push, рор и min должны выполняться за время O(1)
-
SortedStack Стек, в котором элементы хранятся и извлекаются в отсортированном порядке. Разрешается использовать другой стек для временного хранилища данных
-
Queue2 Очередь с использованием двух стеков
stringbuf.py
- Stringbuf Автоматически растущий буфер символов