mirror of
https://github.com/TheAlgorithms/Python.git
synced 2025-07-05 17:34:49 +08:00
[pre-commit.ci] pre-commit autoupdate (#12398)
updates: - [github.com/astral-sh/ruff-pre-commit: v0.4.10 → v0.5.0](https://github.com/astral-sh/ruff-pre-commit/compare/v0.4.10...v0.5.0) - [github.com/pre-commit/mirrors-mypy: v1.10.0 → v1.10.1](https://github.com/pre-commit/mirrors-mypy/compare/v1.10.0...v1.10.1) Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
This commit is contained in:
![66853113+pre-commit-ci[bot]@users.noreply.github.com](/assets/img/avatar_default.png)
committed by
GitHub

parent
f3f32ae3ca
commit
fc33c50593
@ -156,7 +156,7 @@ def solve_all(grids, name="", showif=0.0):
|
||||
times, results = zip(*[time_solve(grid) for grid in grids])
|
||||
if (n := len(grids)) > 1:
|
||||
print(
|
||||
"Solved %d of %d %s puzzles (avg %.2f secs (%d Hz), max %.2f secs)."
|
||||
"Solved %d of %d %s puzzles (avg %.2f secs (%d Hz), max %.2f secs)." # noqa: UP031
|
||||
% (sum(results), n, name, sum(times) / n, n / sum(times), max(times))
|
||||
)
|
||||
|
||||
|
@ -30,7 +30,7 @@ def make_tree() -> Node | None:
|
||||
return tree
|
||||
|
||||
|
||||
def preorder(root: Node | None) -> Generator[int, None, None]:
|
||||
def preorder(root: Node | None) -> Generator[int]:
|
||||
"""
|
||||
Pre-order traversal visits root node, left subtree, right subtree.
|
||||
>>> list(preorder(make_tree()))
|
||||
@ -43,7 +43,7 @@ def preorder(root: Node | None) -> Generator[int, None, None]:
|
||||
yield from preorder(root.right)
|
||||
|
||||
|
||||
def postorder(root: Node | None) -> Generator[int, None, None]:
|
||||
def postorder(root: Node | None) -> Generator[int]:
|
||||
"""
|
||||
Post-order traversal visits left subtree, right subtree, root node.
|
||||
>>> list(postorder(make_tree()))
|
||||
@ -56,7 +56,7 @@ def postorder(root: Node | None) -> Generator[int, None, None]:
|
||||
yield root.data
|
||||
|
||||
|
||||
def inorder(root: Node | None) -> Generator[int, None, None]:
|
||||
def inorder(root: Node | None) -> Generator[int]:
|
||||
"""
|
||||
In-order traversal visits left subtree, root node, right subtree.
|
||||
>>> list(inorder(make_tree()))
|
||||
@ -69,7 +69,7 @@ def inorder(root: Node | None) -> Generator[int, None, None]:
|
||||
yield from inorder(root.right)
|
||||
|
||||
|
||||
def reverse_inorder(root: Node | None) -> Generator[int, None, None]:
|
||||
def reverse_inorder(root: Node | None) -> Generator[int]:
|
||||
"""
|
||||
Reverse in-order traversal visits right subtree, root node, left subtree.
|
||||
>>> list(reverse_inorder(make_tree()))
|
||||
@ -93,7 +93,7 @@ def height(root: Node | None) -> int:
|
||||
return (max(height(root.left), height(root.right)) + 1) if root else 0
|
||||
|
||||
|
||||
def level_order(root: Node | None) -> Generator[int, None, None]:
|
||||
def level_order(root: Node | None) -> Generator[int]:
|
||||
"""
|
||||
Returns a list of nodes value from a whole binary tree in Level Order Traverse.
|
||||
Level Order traverse: Visit nodes of the tree level-by-level.
|
||||
@ -116,9 +116,7 @@ def level_order(root: Node | None) -> Generator[int, None, None]:
|
||||
process_queue.append(node.right)
|
||||
|
||||
|
||||
def get_nodes_from_left_to_right(
|
||||
root: Node | None, level: int
|
||||
) -> Generator[int, None, None]:
|
||||
def get_nodes_from_left_to_right(root: Node | None, level: int) -> Generator[int]:
|
||||
"""
|
||||
Returns a list of nodes value from a particular level:
|
||||
Left to right direction of the binary tree.
|
||||
@ -128,7 +126,7 @@ def get_nodes_from_left_to_right(
|
||||
[2, 3]
|
||||
"""
|
||||
|
||||
def populate_output(root: Node | None, level: int) -> Generator[int, None, None]:
|
||||
def populate_output(root: Node | None, level: int) -> Generator[int]:
|
||||
if not root:
|
||||
return
|
||||
if level == 1:
|
||||
@ -140,9 +138,7 @@ def get_nodes_from_left_to_right(
|
||||
yield from populate_output(root, level)
|
||||
|
||||
|
||||
def get_nodes_from_right_to_left(
|
||||
root: Node | None, level: int
|
||||
) -> Generator[int, None, None]:
|
||||
def get_nodes_from_right_to_left(root: Node | None, level: int) -> Generator[int]:
|
||||
"""
|
||||
Returns a list of nodes value from a particular level:
|
||||
Right to left direction of the binary tree.
|
||||
@ -152,7 +148,7 @@ def get_nodes_from_right_to_left(
|
||||
[3, 2]
|
||||
"""
|
||||
|
||||
def populate_output(root: Node | None, level: int) -> Generator[int, None, None]:
|
||||
def populate_output(root: Node | None, level: int) -> Generator[int]:
|
||||
if not root:
|
||||
return
|
||||
if level == 1:
|
||||
@ -164,7 +160,7 @@ def get_nodes_from_right_to_left(
|
||||
yield from populate_output(root, level)
|
||||
|
||||
|
||||
def zigzag(root: Node | None) -> Generator[int, None, None]:
|
||||
def zigzag(root: Node | None) -> Generator[int]:
|
||||
"""
|
||||
ZigZag traverse:
|
||||
Returns a list of nodes value from left to right and right to left, alternatively.
|
||||
|
@ -12,7 +12,7 @@ class _DoublyLinkedBase:
|
||||
"""A Private class (to be inherited)"""
|
||||
|
||||
class _Node:
|
||||
__slots__ = "_prev", "_data", "_next"
|
||||
__slots__ = "_data", "_next", "_prev"
|
||||
|
||||
def __init__(self, link_p, element, link_n):
|
||||
self._prev = link_p
|
||||
|
@ -33,7 +33,7 @@ class Deque:
|
||||
the number of nodes
|
||||
"""
|
||||
|
||||
__slots__ = ("_front", "_back", "_len")
|
||||
__slots__ = ("_back", "_front", "_len")
|
||||
|
||||
@dataclass
|
||||
class _Node:
|
||||
|
Reference in New Issue
Block a user