Das Debuggen ist doppelt so schwierig wie das Schreiben des Code.
Wenn Sie Probleme im Zusammenhang mit Datenstrukturen und Algorithmen (DSA) lösen, wissen Sie, wie frustrierend es ist, komplexe Datenstrukturen wie binäre Bäume und gerichtete Grafiken zu debuggen.
LeetPy ist ein leichtes Python -Paket, das Sie effizienter macht, wenn Sie DSA -Probleme lösen. Es enthält Utility -Funktionen und Algorithmen, die das Debuggen und das Testen so viel einfacher machen. Hier sind einige Funktionen:
LeetPy bietet bequeme print() -Funktionen, die Ihnen zeigen, wie Ihre Struktur aussieht (alles in Ihrem Terminal!).LeetPy funktionieren immer richtig. Um die neueste stabile Version zu installieren, rennen Sie:
$ pip install leetpySo installieren Sie aus dem neuesten GitHub Commit:
pip install git+https://github.com/aryanpingle/leetpyHier ist ein minimaler Anwendungsfall:
# 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 treeUnd hier ist ein komplexer:
# 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 bietet eine breite Palette von Versorgungsfunktionen - für eine Vielzahl von Datenstrukturen. Eine umfassende Liste von Nutzungsbeispielen finden Sie unter /examples/Readme.md.
LeetPy plant, die folgenden Datenstrukturen zu unterstützen:
Alle Datenstrukturen haben einige gemeinsame APIs:
create() -> structure - So erstellen Sie die Struktur mit zufälligen Daten und Eigenschaften basierend auf bestimmten Parameternexport_as_code(structure) -> str -, um eine unabhängige Python3 -Funktion zu erhalten, die bei der Aufforderung die angegebene Datenstruktur zurückgibtexport_as_svg(structure) -> None - Erstellen einer SVG -Datei mit einer Visualisierung der angegebenen Datenstrukturprint(structure) -> None - zum Drucken einer Darstellung der Datenstruktur in das Terminal drucken