Отладка в два раза тяжелее, чем написание кода в первую очередь.
Если вы решаете проблемы, связанные со структурами данных и алгоритмами (DSA), вы знаете, насколько разочаровывает отладки сложных структур данных, таких как бинарные деревья и направленные графики.
LeetPy - это легкий пакет Python, который делает вас более эффективным, когда вы решаете проблемы с DSA. Он содержит коммунальные функции и алгоритмы, которые значительно облегчают отладку и тестирование. Вот некоторые функции:
LeetPy предоставляет удобные функции print() , которые показывают вам, как выглядит ваша структура (все внутри вашего терминала!).LeetPy всегда будут работать правильно. Чтобы установить последний стабильный выпуск, запустите:
$ pip install leetpyЧтобы установить из последнего фиксатора GitHub:
pip install git+https://github.com/aryanpingle/leetpyВот минимальный вариант использования:
# Create a random binary tree and visualize it
from leetpy import BinaryTree
root = BinaryTree . create ( n = 20 ) # create a random binary tree with 20 nodes
BinaryTree . print_structure ( root ) # visualize the binary treeА вот сложный:
# Suppose you want to 'save' 10 binary search trees (example: for testing purposes)
# You would need some Python code that generates each tree exactly
from leetpy import BinaryTree
for i in range ( 1 , 11 ):
# Generate a random binary search tree (BST) with 20 nodes
# Each node should have a value between 1 and 10 (inclusive)
root = BinaryTree . create ( n = 20 , min_val = 1 , max_val = 10 , make_bst = True )
# Get the python code that generates this exact BST
# Oh, and make each node an object of class "CustomNode"
# Oh, and keep indentation to 2 spaces
code += " n " + BinaryTree . export_as_code ( root , node_alias = "CustomNode" , indent = 2 )
with open ( "testing.py" , "w" ) as f :
f . write ( code ) LeetPy предлагает широкий спектр коммунальных функций - для широкого спектра структур данных. Для получения комплексного списка примеров использования, ознакомьтесь с /эксплсетром /readme.md.
LeetPy имеет планы поддержать следующие структуры данных:
Все структуры данных имеют некоторые общие API:
create() -> structure - чтобы создать структуру со случайными данными и свойствами на основе определенных параметровexport_as_code(structure) -> str - чтобы получить независимую функцию Python3, которая при вызове возвращает данную структуру данныхexport_as_svg(structure) -> None - чтобы создать файл SVG с визуализацией заданной структуры данныхprint(structure) -> None - для печати представления структуры данных на терминал