A depuração é duas vezes mais difícil do que escrever o código em primeiro lugar.
Se você resolver problemas relacionados a estruturas de dados e algoritmos (DSA), você sabe como é frustrante depurar estruturas de dados complexas, como árvores binárias e gráficos direcionados.
LeetPy é um pacote Python leve que o torna mais eficiente quando você resolve problemas de DSA. Ele contém funções e algoritmos de utilidade que facilitam muito a depuração e o teste. Aqui estão alguns recursos:
LeetPy fornece funções print() convenientes que mostram como é sua estrutura (tudo dentro do seu terminal!).LeetPy sempre funcionarão corretamente. Para instalar o último lançamento estável, Run:
$ pip install leetpyPara instalar a partir do mais recente Commit Github:
pip install git+https://github.com/aryanpingle/leetpyAqui está um caso de uso mínimo:
# 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 treeE aqui está um complexo:
# 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 oferece uma ampla gama de funções de utilidade - para uma ampla gama de estruturas de dados. Para uma lista abrangente de exemplos de uso, confira /examples/readme.md.
LeetPy tem planos de apoiar as seguintes estruturas de dados:
Todas as estruturas de dados têm algumas APIs comuns:
create() -> structure - Para criar a estrutura com dados e propriedades aleatórias com base em determinados parâmetrosexport_as_code(structure) -> str - Para obter uma função independente do python3 que, quando chamado, retorna a estrutura de dados fornecidaexport_as_svg(structure) -> None - para criar um arquivo SVG com uma visualização da estrutura de dados fornecidaprint(structure) -> None - Imprimir uma representação da estrutura de dados para o terminal