Le débogage est deux fois plus difficile que d'écrire le code en premier lieu.
Si vous résolvez des problèmes liés aux structures de données et aux algorithmes (DSA), vous savez à quel point il est frustrant de déboguer des structures de données complexes comme les arbres binaires et les graphiques dirigés.
LeetPy est un package Python léger qui vous rend plus efficace lorsque vous résolvez les problèmes de DSA. Il contient des fonctions d'utilité et des algorithmes qui facilitent le débogage et le test. Voici quelques fonctionnalités:
LeetPy fournit des fonctions PRINCT print() qui vous montrent à quoi ressemble votre structure (le tout à l'intérieur de votre terminal!).LeetPy fonctionneront toujours correctement. Pour installer la dernière version stable, exécuter:
$ pip install leetpyPour installer à partir du dernier engagement GitHub:
pip install git+https://github.com/aryanpingle/leetpyVoici un cas d'utilisation minimal:
# 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 treeEt en voici un complexe:
# 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 propose une large gamme de fonctions utilitaires - pour un large éventail de structures de données. Pour une liste complète d'exemples d'utilisation, consultez / Exemples/readme.md.
LeetPy prévoit de prendre en charge les structures de données suivantes:
Toutes les structures de données ont des API communes:
create() -> structure - Pour créer la structure avec des données et des propriétés aléatoires basées sur certains paramètresexport_as_code(structure) -> str - Pour obtenir une fonction Python3 indépendante qui, lorsqu'elle est appelée, renvoie la structure de données donnéeexport_as_svg(structure) -> None - pour créer un fichier SVG avec une visualisation de la structure de données donnéeprint(structure) -> None - pour imprimer une représentation de la structure de données au terminal