From 7215430901124b5f3332140e15b9ab6c6a1557bc Mon Sep 17 00:00:00 2001 From: Lusina <12752833+BrianLusina@users.noreply.github.com> Date: Mon, 24 Nov 2025 08:48:22 +0300 Subject: [PATCH 1/5] feat(datastructures, binary tree): lowest common ancestor --- .../arrays/two_sum_less_k/test_two_sum.py | 8 +- .../maxruntime_n_computers/__init__.py | 5 +- .../test_max_runtime.py | 47 ++--- datastructures/__init__.py | 5 +- datastructures/sets/union_find/__init__.py | 4 +- .../streams/stream_checker/__init__.py | 1 - .../stream_checker/test_stream_checker.py | 2 +- datastructures/trees/binary/README.md | 67 +++++++ .../lowest_common_ancestor_example_1.png | Bin 0 -> 37307 bytes .../lowest_common_ancestor_example_2.png | Bin 0 -> 37364 bytes .../lowest_common_ancestor_example_3.png | Bin 0 -> 37234 bytes .../lowest_common_ancestor_example_4.png | Bin 0 -> 34767 bytes .../lowest_common_ancestor_solution_1.png | Bin 0 -> 27572 bytes .../lowest_common_ancestor_solution_2.png | Bin 0 -> 32666 bytes .../lowest_common_ancestor_solution_3.png | Bin 0 -> 30571 bytes .../lowest_common_ancestor_solution_4.png | Bin 0 -> 31889 bytes .../lowest_common_ancestor_solution_5.png | Bin 0 -> 31470 bytes .../lowest_common_ancestor_solution_6.png | Bin 0 -> 30911 bytes .../lowest_common_ancestor_solution_7.png | Bin 0 -> 33107 bytes datastructures/trees/binary/node.py | 26 ++- .../trees/binary/search_tree/__init__.py | 2 +- datastructures/trees/binary/test_utils.py | 169 ++++++++++++++++++ datastructures/trees/binary/tree/__init__.py | 4 +- datastructures/trees/binary/utils.py | 54 ++++++ datastructures/trees/node.py | 34 +++- datastructures/trees/trie/__init__.py | 5 +- .../test_maximal_score.py | 133 ++++++++++++-- pystrings/is_prefix/test_is_prefix_of_word.py | 2 +- .../__init__.py | 2 +- .../test_longest_self_contained_substring.py | 2 +- pystrings/similar_string_groups/__init__.py | 6 +- .../test_similar_string_groups.py | 22 ++- 32 files changed, 525 insertions(+), 75 deletions(-) create mode 100644 datastructures/trees/binary/README.md create mode 100644 datastructures/trees/binary/images/examples/lowest_common_ancestor_example_1.png create mode 100644 datastructures/trees/binary/images/examples/lowest_common_ancestor_example_2.png create mode 100644 datastructures/trees/binary/images/examples/lowest_common_ancestor_example_3.png create mode 100644 datastructures/trees/binary/images/examples/lowest_common_ancestor_example_4.png create mode 100644 datastructures/trees/binary/images/solutions/lowest_common_ancestor_solution_1.png create mode 100644 datastructures/trees/binary/images/solutions/lowest_common_ancestor_solution_2.png create mode 100644 datastructures/trees/binary/images/solutions/lowest_common_ancestor_solution_3.png create mode 100644 datastructures/trees/binary/images/solutions/lowest_common_ancestor_solution_4.png create mode 100644 datastructures/trees/binary/images/solutions/lowest_common_ancestor_solution_5.png create mode 100644 datastructures/trees/binary/images/solutions/lowest_common_ancestor_solution_6.png create mode 100644 datastructures/trees/binary/images/solutions/lowest_common_ancestor_solution_7.png create mode 100644 datastructures/trees/binary/test_utils.py create mode 100644 datastructures/trees/binary/utils.py diff --git a/algorithms/arrays/two_sum_less_k/test_two_sum.py b/algorithms/arrays/two_sum_less_k/test_two_sum.py index 5fb56a94..574ff9a6 100644 --- a/algorithms/arrays/two_sum_less_k/test_two_sum.py +++ b/algorithms/arrays/two_sum_less_k/test_two_sum.py @@ -5,7 +5,7 @@ class TwoSumLessKTestCase(unittest.TestCase): def test_1(self): """numbers = [4,2,11,2,5,3,5,8], target = 7""" - numbers = [4,2,11,2,5,3,5,8] + numbers = [4, 2, 11, 2, 5, 3, 5, 8] target = 7 expected = 6 actual = two_sum_less_than_k(numbers, target) @@ -21,7 +21,7 @@ def test_2(self): def test_3(self): """numbers = [34,23,1,24,75,33,54,8], k = 60""" - numbers = [34,23,1,24,75,33,54,8] + numbers = [34, 23, 1, 24, 75, 33, 54, 8] k = 60 expected = 58 actual = two_sum_less_than_k(numbers, k) @@ -29,7 +29,7 @@ def test_3(self): def test_4(self): """numbers = [5,5,5,5,5,5], k = 15""" - numbers = [5,5,5,5,5,5] + numbers = [5, 5, 5, 5, 5, 5] k = 15 expected = 10 actual = two_sum_less_than_k(numbers, k) @@ -37,7 +37,7 @@ def test_4(self): def test_5(self): """numbers = [1,2,3,4,5], k = 3""" - numbers = [1,2,3,4,5] + numbers = [1, 2, 3, 4, 5] k = 3 expected = -1 actual = two_sum_less_than_k(numbers, k) diff --git a/algorithms/search/binary_search/maxruntime_n_computers/__init__.py b/algorithms/search/binary_search/maxruntime_n_computers/__init__.py index 4ec45cd5..2af12c7a 100644 --- a/algorithms/search/binary_search/maxruntime_n_computers/__init__.py +++ b/algorithms/search/binary_search/maxruntime_n_computers/__init__.py @@ -49,7 +49,6 @@ def can_run_for(batteries: List[int], n: int, target_time: int) -> bool: def max_run_time_2(batteries: List[int], n: int) -> int: - """ Finds the maximum runtime that can power the computers for the given amount of time. @@ -67,7 +66,7 @@ def max_run_time_2(batteries: List[int], n: int) -> int: usable = sum(min(b, mid) for b in batteries) if usable >= mid * n: - left = mid + left = mid else: - right = mid - 1 + right = mid - 1 return left diff --git a/algorithms/search/binary_search/maxruntime_n_computers/test_max_runtime.py b/algorithms/search/binary_search/maxruntime_n_computers/test_max_runtime.py index cd38e1ca..83394204 100644 --- a/algorithms/search/binary_search/maxruntime_n_computers/test_max_runtime.py +++ b/algorithms/search/binary_search/maxruntime_n_computers/test_max_runtime.py @@ -4,35 +4,38 @@ class MaxRunTimeTestCase(unittest.TestCase): - - @parameterized.expand([ - ([2,3,3,4], 3, 4), - ([1,1,4,5], 2, 5), - ([2,2,2,2], 1, 8), - ([7,2,5,10,8], 2, 16), - ([1,2,3,4,5], 2, 7), - ([3,4,3,4,5,5,8,2], 4, 8), - ([5,2,4], 2, 5), - ([1,6,2,6,8], 5, 1) - ]) + @parameterized.expand( + [ + ([2, 3, 3, 4], 3, 4), + ([1, 1, 4, 5], 2, 5), + ([2, 2, 2, 2], 1, 8), + ([7, 2, 5, 10, 8], 2, 16), + ([1, 2, 3, 4, 5], 2, 7), + ([3, 4, 3, 4, 5, 5, 8, 2], 4, 8), + ([5, 2, 4], 2, 5), + ([1, 6, 2, 6, 8], 5, 1), + ] + ) def test_max_runtime_1(self, batteries, n, expected): actual = max_runtime(batteries, n) self.assertEqual(expected, actual) - @parameterized.expand([ - ([2,3,3,4], 3, 4), - ([1,1,4,5], 2, 5), - ([2,2,2,2], 1, 8), - ([7,2,5,10,8], 2, 16), - ([1,2,3,4,5], 2, 7), - ([3,4,3,4,5,5,8,2], 4, 8), - ([5,2,4], 2, 5), - ([1,6,2,6,8], 5, 1) - ]) + @parameterized.expand( + [ + ([2, 3, 3, 4], 3, 4), + ([1, 1, 4, 5], 2, 5), + ([2, 2, 2, 2], 1, 8), + ([7, 2, 5, 10, 8], 2, 16), + ([1, 2, 3, 4, 5], 2, 7), + ([3, 4, 3, 4, 5, 5, 8, 2], 4, 8), + ([5, 2, 4], 2, 5), + ([1, 6, 2, 6, 8], 5, 1), + ] + ) def test_max_runtime_2(self, batteries, n, expected): actual = max_run_time_2(batteries, n) self.assertEqual(expected, actual) -if __name__ == '__main__': +if __name__ == "__main__": unittest.main() diff --git a/datastructures/__init__.py b/datastructures/__init__.py index 3f539b87..0b3ec3a0 100644 --- a/datastructures/__init__.py +++ b/datastructures/__init__.py @@ -1,6 +1,3 @@ from datastructures.sets import DisjointSetUnion, UnionFind -__all__ = [ - "DisjointSetUnion", - "UnionFind" -] +__all__ = ["DisjointSetUnion", "UnionFind"] diff --git a/datastructures/sets/union_find/__init__.py b/datastructures/sets/union_find/__init__.py index cdf511dd..d5fd041c 100644 --- a/datastructures/sets/union_find/__init__.py +++ b/datastructures/sets/union_find/__init__.py @@ -47,7 +47,7 @@ def get_count(self) -> int: class UnionFind: """A minimal Union-Find data structure with path compression.""" - + def __init__(self, size: int): """Initializes the data structure with 'size' elements.""" if size <= 0: @@ -71,4 +71,4 @@ def union(self, x: int, y: int) -> bool: if root_x != root_y: self.parent[root_y] = root_x return True - return False \ No newline at end of file + return False diff --git a/datastructures/streams/stream_checker/__init__.py b/datastructures/streams/stream_checker/__init__.py index 78687c03..6ad757c9 100644 --- a/datastructures/streams/stream_checker/__init__.py +++ b/datastructures/streams/stream_checker/__init__.py @@ -4,7 +4,6 @@ class StreamChecker(object): - def __init__(self, words: List[str]): """ Initializes a StreamChecker instance. diff --git a/datastructures/streams/stream_checker/test_stream_checker.py b/datastructures/streams/stream_checker/test_stream_checker.py index 08c011c2..393e6cb4 100644 --- a/datastructures/streams/stream_checker/test_stream_checker.py +++ b/datastructures/streams/stream_checker/test_stream_checker.py @@ -31,5 +31,5 @@ def test_3(self): self.assertFalse(stream.query("b")) -if __name__ == '__main__': +if __name__ == "__main__": unittest.main() diff --git a/datastructures/trees/binary/README.md b/datastructures/trees/binary/README.md new file mode 100644 index 00000000..14a5aec6 --- /dev/null +++ b/datastructures/trees/binary/README.md @@ -0,0 +1,67 @@ +# Binary Trees + +## Lowest Common Ancestor of a Binary Tree + +You are given two nodes, p and q. The task is to return their lowest common ancestor (LCA). Both nodes have a reference +to their parent node. The tree’s root is not provided; you must use the parent pointers to find the nodes’ common +ancestor. + +> Note: The lowest common ancestor of two nodes, p and q, is the lowest node in the binary tree, with both p and q as +> descendants. In a tree, a descendant of a node is any node reachable by following edges downward from that node, +> including the node itself. + +Constraints + +- -10^4 ≤ `node.data` ≤ 10^4 +- The number of nodes in the tree is in the range [2, 500] +- All `node.data` are unique +- `p` != `q` +- Both `p` and `q` are present in the tree + +### Examples + +![Example 1](./images/examples/lowest_common_ancestor_example_1.png) +![Example 2](./images/examples/lowest_common_ancestor_example_2.png) +![Example 3](./images/examples/lowest_common_ancestor_example_3.png) +![Example 4](./images/examples/lowest_common_ancestor_example_4.png) + +### Solution + +This solution finds the lowest common ancestor (LCA) of two nodes in a binary tree using a smart two-pointer approach. +We start by placing one pointer at node p and the other at node q. Both pointers move up the tree at each step by +following their parent pointers. If a pointer reaches the root (i.e., its parent is None), it jumps to the other +starting node. This process continues until the two pointers meet. The key idea is that by switching starting points +after reaching the top, both pointers end up traveling the same total distance, even if p and q are at different depths. +When they meet, that meeting point is their lowest common ancestor. + +The steps of the algorithm are as follows: + +1. Initialize two pointers: ptr1 starting at p and ptr2 starting at q. +2. While ptr1 and ptr2 are not pointing to the same node: + - If ptr1 has a parent, move ptr1 to ptr1.parent; otherwise, set ptr1 = q. + - If ptr2 has a parent, move ptr2 to ptr2.parent; otherwise, set ptr2 = p. + +3. When ptr1 == ptr2, return ptr1. This node is the lowest common ancestor (LCA) of p and q. + +Let’s look at the following illustration to get a better understanding of the solution: + +![Solution 1](./images/solutions/lowest_common_ancestor_solution_1.png) +![Solution 2](./images/solutions/lowest_common_ancestor_solution_2.png) +![Solution 3](./images/solutions/lowest_common_ancestor_solution_3.png) +![Solution 4](./images/solutions/lowest_common_ancestor_solution_4.png) +![Solution 5](./images/solutions/lowest_common_ancestor_solution_5.png) +![Solution 6](./images/solutions/lowest_common_ancestor_solution_6.png) +![Solution 7](./images/solutions/lowest_common_ancestor_solution_7.png) + +### Complexity + +#### Time Complexity + +The time complexity is `O(h)` where `h` is the height of the tree, as in the worst case, each pointer might traverse the +entire height of the tree, including `h` steps. + +#### Space complexity + +The space complexity of this solution is `O(1)` as there is no additional space being used. Only two pointers are being +maintained requiring constant space. + diff --git a/datastructures/trees/binary/images/examples/lowest_common_ancestor_example_1.png b/datastructures/trees/binary/images/examples/lowest_common_ancestor_example_1.png new file mode 100644 index 0000000000000000000000000000000000000000..dd13c8b166e6937ccbb8a48be2087020bc72d2c0 GIT binary patch literal 37307 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 h*S}U_2>(1sYL34Ym2^F15DEU17FQ6_VfC@ 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 literal 0 HcmV?d00001 diff --git a/datastructures/trees/binary/images/examples/lowest_common_ancestor_example_3.png b/datastructures/trees/binary/images/examples/lowest_common_ancestor_example_3.png new file mode 100644 index 0000000000000000000000000000000000000000..887c68bd051d001b4d35ab9d5b5a4cc668bcbcc3 GIT binary patch literal 37234 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 GzyAS<{%Pd^ literal 0 HcmV?d00001 diff --git a/datastructures/trees/binary/images/examples/lowest_common_ancestor_example_4.png b/datastructures/trees/binary/images/examples/lowest_common_ancestor_example_4.png new file mode 100644 index 0000000000000000000000000000000000000000..1ece25f4879b60ea73d9129662f1cc492384e091 GIT binary patch literal 34767 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 literal 0 HcmV?d00001 diff --git a/datastructures/trees/binary/images/solutions/lowest_common_ancestor_solution_1.png b/datastructures/trees/binary/images/solutions/lowest_common_ancestor_solution_1.png new file mode 100644 index 0000000000000000000000000000000000000000..a64758e93d82c760d9eccc84aa4fce0b32878237 GIT binary patch literal 27572 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 BWCQ>J literal 0 HcmV?d00001 diff --git a/datastructures/trees/binary/images/solutions/lowest_common_ancestor_solution_3.png b/datastructures/trees/binary/images/solutions/lowest_common_ancestor_solution_3.png new file mode 100644 index 0000000000000000000000000000000000000000..66dd9376b9c440e996a239a130fd98ecc00951ba GIT binary patch literal 30571 zcmeFZWmuG5`!5XRs0^Lb4MTT#H%NC&NvD)_DM)vhfD)3@DG1UaDBY5Rh?F4VUZeN@ z{Ga1}KfLe$vOjH);c%F_u63<-t}}nXa}llaPyqv#1QiJh2}4OyRtpIUf{%oRJb`i# ze1hgElL~%Ou$Ph1P?C|M((rJ#wRf^XLSjq`OcYVMBZVK?{g~H6mKFSK!l8VBKe{-b zs}SV@HM4lzm~F~)B{F^%2WLlTwgIV-V*>GH3-{rTD;3b(6foEUzgpS;7kFJkz zNxoRsVcxlae0Nr9bb`cjpHzM=i>mW2&v1x6fi5qFIX+s!%~ko*#`KM??8L8|+wXgd z^KvS`az53Tk`V@k_x>=|w_m|Kbhl<&ml?|

%vWb8*nukoz2Fj^<-*$U`5%L8i>V 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

LFq9wy^{~QPc$Ads~+B(|W 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

IJmx0q_S3ti^kpA6iq%?B72ET+0b$F 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 AkpKVy literal 0 HcmV?d00001 diff --git a/datastructures/trees/binary/images/solutions/lowest_common_ancestor_solution_5.png b/datastructures/trees/binary/images/solutions/lowest_common_ancestor_solution_5.png new file mode 100644 index 0000000000000000000000000000000000000000..4644d353567172b08fe68eb76ae132e258da58bc GIT binary patch literal 31470 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 literal 0 HcmV?d00001 diff --git a/datastructures/trees/binary/images/solutions/lowest_common_ancestor_solution_6.png b/datastructures/trees/binary/images/solutions/lowest_common_ancestor_solution_6.png new file mode 100644 index 0000000000000000000000000000000000000000..9b82773f9bf7ea0f6227dff51d7b0d8f0e0b5bd5 GIT binary patch literal 30911 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

{X8hp%EP9^MlWBQ(QK(J!mvn|k1$?0sJyUne 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 literal 0 HcmV?d00001 diff --git a/datastructures/trees/binary/images/solutions/lowest_common_ancestor_solution_7.png b/datastructures/trees/binary/images/solutions/lowest_common_ancestor_solution_7.png new file mode 100644 index 0000000000000000000000000000000000000000..b1ed4c45a92a4dfb46a596a956939f89321fd8cf GIT binary patch literal 33107 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

@xZHSJQoR%*c%ZV3~Fuwdo1CN1_1s?uk-}wf4 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 None: + """ + Constructor for BinaryTreeNode class. This will create a new node with the provided data and optional + left and right children. The key parameter is used to set a key for the node, if not provided then a hash + of the data is used. + + Args: + data (T): Value to be stored in the node + left (Optional[BinaryTreeNode]): Left child of the node + right (Optional[BinaryTreeNode]): Right child of the node + key (Optional[Any]): Key for the node, if not provided a hash of the data is used + parent (Optional[BinaryTreeNode]): Parent of the node + """ + super().__init__(data, key, parent) self.left: Optional[BinaryTreeNode] = left self.right: Optional[BinaryTreeNode] = right @@ -146,7 +161,7 @@ def insert_right(self, data: T) -> "BinaryTreeNode": return self.right @property - def children(self) -> List["BinaryTreeNode"]: + def children(self) -> List["BinaryTreeNode"] | None: """Returns children of this node. Returns: List: children of this node in a list @@ -182,3 +197,6 @@ def __eq__(self, other: "BinaryTreeNode") -> bool: return True return False + + def __hash__(self): + return hash(self.data) diff --git a/datastructures/trees/binary/search_tree/__init__.py b/datastructures/trees/binary/search_tree/__init__.py index 82642fd1..62653d81 100755 --- a/datastructures/trees/binary/search_tree/__init__.py +++ b/datastructures/trees/binary/search_tree/__init__.py @@ -13,7 +13,7 @@ def __init__(self, root: Optional[BinaryTreeNode] = None): self.stack = DynamicSizeStack() @staticmethod - def construct_bst(items: List[T]) -> Optional['BinarySearchTree']: + def construct_bst(items: List[T]) -> Optional["BinarySearchTree"]: """ Constructs a binary search tree from a sorted list of items. diff --git a/datastructures/trees/binary/test_utils.py b/datastructures/trees/binary/test_utils.py new file mode 100644 index 00000000..3589eb89 --- /dev/null +++ b/datastructures/trees/binary/test_utils.py @@ -0,0 +1,169 @@ +import unittest +from datastructures.trees.binary.utils import lowest_common_ancestor, lowest_common_ancestor_ptr +from datastructures.trees.binary.node import BinaryTreeNode + + +class LowestCommonAncestorTestCase(unittest.TestCase): + def test_1(self): + root = BinaryTreeNode(data=10) + + # left subtree + root.left = BinaryTreeNode(data=11, parent=root) + root.left.left = BinaryTreeNode(data=6, parent=root.left) + root.left.right = BinaryTreeNode(data=5, parent=root.left) + root.left.right.left = BinaryTreeNode(data=13, parent=root.left.right) + root.left.right.right = BinaryTreeNode(data=15, parent=root.left.right) + + # right subtree + root.right = BinaryTreeNode(data=22, parent=root) + root.right.right = BinaryTreeNode(data=14, parent=root.right) + root.right.left = BinaryTreeNode(data=19, parent=root.right) + + node_one = root.left.right.left + node_two = root.left.right.right + expected = root.left.right + actual = lowest_common_ancestor(node_one, node_two) + self.assertEqual(expected, actual) + + def test_2(self): + root = BinaryTreeNode(data=10) + root.left = BinaryTreeNode(data=11, parent=root) + node_one = BinaryTreeNode(data=6, parent=root.left) + root.left.left = node_one + root.left.right = BinaryTreeNode(data=5, parent=root.left) + root.left.right.left = BinaryTreeNode(data=13, parent=root.left.right) + root.left.right.right = BinaryTreeNode(data=15, parent=root.left.right) + + root.right = BinaryTreeNode(data=22, parent=root) + root.right.left = BinaryTreeNode(data=19, parent=root.right) + root.right.right = BinaryTreeNode(data=14, parent=root.right) + node_two = root.right.right + + expected = root + actual = lowest_common_ancestor(node_one, node_two) + self.assertEqual(expected, actual) + + def test_3(self): + root = BinaryTreeNode(data=10) + + # left subtree from root + root.left = BinaryTreeNode(data=11, parent=root) + root.left.left = BinaryTreeNode(data=6, parent=root.left) + root.left.right = BinaryTreeNode(data=5, parent=root.left) + root.left.right.left = BinaryTreeNode(data=13, parent=root.left.right) + root.left.right.right = BinaryTreeNode(data=15, parent=root.left.right) + + # right subtree from root + root.right = BinaryTreeNode(data=17, parent=root) + root.right.left = BinaryTreeNode(data=19, parent=root.right) + root.right.right = BinaryTreeNode(data=14, parent=root.right) + + node_one = root.left + node_two = root.left.right.right + expected = node_one + actual = lowest_common_ancestor(node_one, node_two) + self.assertEqual(expected, actual) + + def test_4(self): + root = BinaryTreeNode(data=17) + + # left subtree from root + root.left = BinaryTreeNode(data=3, parent=root) + root.left.left = BinaryTreeNode(data=6, parent=root.left) + root.left.right = BinaryTreeNode(data=5, parent=root.left) + + # right subtree from root + root.right = BinaryTreeNode(data=16, parent=root) + root.right.left = BinaryTreeNode(data=19, parent=root.right) + root.right.right = BinaryTreeNode(data=14, parent=root.right) + + node_one = root.left.right + node_two = root.right.left + expected = root + actual = lowest_common_ancestor(node_one, node_two) + self.assertEqual(expected, actual) + + +class LowestCommonAncestorPtrTestCase(unittest.TestCase): + def test_1(self): + root = BinaryTreeNode(data=10) + + # left subtree + root.left = BinaryTreeNode(data=11, parent=root) + root.left.left = BinaryTreeNode(data=6, parent=root.left) + root.left.right = BinaryTreeNode(data=5, parent=root.left) + root.left.right.left = BinaryTreeNode(data=13, parent=root.left.right) + root.left.right.right = BinaryTreeNode(data=15, parent=root.left.right) + + # right subtree + root.right = BinaryTreeNode(data=22, parent=root) + root.right.right = BinaryTreeNode(data=14, parent=root.right) + root.right.left = BinaryTreeNode(data=19, parent=root.right) + + node_one = root.left.right.left + node_two = root.left.right.right + expected = root.left.right + actual = lowest_common_ancestor_ptr(node_one, node_two) + self.assertEqual(expected, actual) + + def test_2(self): + root = BinaryTreeNode(data=10) + root.left = BinaryTreeNode(data=11, parent=root) + node_one = BinaryTreeNode(data=6, parent=root.left) + root.left.left = node_one + root.left.right = BinaryTreeNode(data=5, parent=root.left) + root.left.right.left = BinaryTreeNode(data=13, parent=root.left.right) + root.left.right.right = BinaryTreeNode(data=15, parent=root.left.right) + + root.right = BinaryTreeNode(data=22, parent=root) + root.right.left = BinaryTreeNode(data=19, parent=root.right) + root.right.right = BinaryTreeNode(data=14, parent=root.right) + node_two = root.right.right + + expected = root + actual = lowest_common_ancestor_ptr(node_one, node_two) + self.assertEqual(expected, actual) + + def test_3(self): + root = BinaryTreeNode(data=10) + + # left subtree from root + root.left = BinaryTreeNode(data=11, parent=root) + root.left.left = BinaryTreeNode(data=6, parent=root.left) + root.left.right = BinaryTreeNode(data=5, parent=root.left) + root.left.right.left = BinaryTreeNode(data=13, parent=root.left.right) + root.left.right.right = BinaryTreeNode(data=15, parent=root.left.right) + + # right subtree from root + root.right = BinaryTreeNode(data=17, parent=root) + root.right.left = BinaryTreeNode(data=19, parent=root.right) + root.right.right = BinaryTreeNode(data=14, parent=root.right) + + node_one = root.left + node_two = root.left.right.right + expected = node_one + actual = lowest_common_ancestor_ptr(node_one, node_two) + self.assertEqual(expected, actual) + + def test_4(self): + root = BinaryTreeNode(data=17) + + # left subtree from root + root.left = BinaryTreeNode(data=3, parent=root) + root.left.left = BinaryTreeNode(data=6, parent=root.left) + root.left.right = BinaryTreeNode(data=5, parent=root.left) + + # right subtree from root + root.right = BinaryTreeNode(data=16, parent=root) + root.right.left = BinaryTreeNode(data=19, parent=root.right) + root.right.right = BinaryTreeNode(data=14, parent=root.right) + + node_one = root.left.right + node_two = root.right.left + expected = root + actual = lowest_common_ancestor_ptr(node_one, node_two) + self.assertEqual(expected, actual) + + +if __name__ == "__main__": + unittest.main() diff --git a/datastructures/trees/binary/tree/__init__.py b/datastructures/trees/binary/tree/__init__.py index 491034df..2b8e0df3 100644 --- a/datastructures/trees/binary/tree/__init__.py +++ b/datastructures/trees/binary/tree/__init__.py @@ -650,7 +650,9 @@ def longest_zig_zag_stack(self) -> int: return 0 path_length = 0 - stack: List[Tuple[BinaryTreeNode | None, int, str | None]] = [(self.root, 0, None)] + stack: List[Tuple[BinaryTreeNode | None, int, str | None]] = [ + (self.root, 0, None) + ] while stack: node, length, last = stack.pop() diff --git a/datastructures/trees/binary/utils.py b/datastructures/trees/binary/utils.py new file mode 100644 index 00000000..181bbf39 --- /dev/null +++ b/datastructures/trees/binary/utils.py @@ -0,0 +1,54 @@ +from datastructures.trees.binary.node import BinaryTreeNode + + +def lowest_common_ancestor( + node_one: BinaryTreeNode, node_two: BinaryTreeNode +) -> BinaryTreeNode | None: + """ + Returns the lowest common ancestor of 2 nodes in the Binary Tree. + The lowest common ancestor of 2 nodes is the node farthest from the root that is an ancestor of both nodes. + This function first collects all ancestors of node_one by traversing upwards from node_one to the root, collecting + all nodes. + Then, it performs a depth-first search from node_two, checking each ancestor. The first node it finds that's already + in its set is the lowest common ancestor. + If no lowest common ancestor is found, None is returned. + + :param node_one: BinaryTreeNode + :param node_two: BinaryTreeNode + :return: BinaryTreeNode | None + """ + # create a set to store all ancestors of node_one. We traverse upward from node_one to the root, collecting all nodes + ancestors = set() + + current = node_one + while current is not None: + # add the current node to the ancestor set + ancestors.add(current) + # move up to the parent + current = current.parent + + # Now perform DFS from node_two, checking each ancestor. The first node we find that's already in our set is the + # LCA + current = node_two + while current is not None: + if current in ancestors: + # This is the first common ancestor we've found. Since we're traversing from bottom to top, this is the + # lowest common ancestor + return current + # move up to the parent + current = current.parent + + # given the constraints, this should not happen + return None + + +def lowest_common_ancestor_ptr( + node_one: BinaryTreeNode, node_two: BinaryTreeNode +) -> BinaryTreeNode | None: + ptr1, ptr2 = node_one, node_two + + while ptr1 != ptr2: + ptr1 = ptr1.parent if ptr1.parent else node_two + ptr2 = ptr2.parent if ptr2.parent else node_one + + return ptr1 diff --git a/datastructures/trees/node.py b/datastructures/trees/node.py index fd4b26eb..a1252ffb 100644 --- a/datastructures/trees/node.py +++ b/datastructures/trees/node.py @@ -12,13 +12,45 @@ class TreeNode(Generic[T]): of nodes """ - def __init__(self, value: T, key: Optional[Any] = None): + def __init__( + self, value: T, key: Optional[Any] = None, parent: Optional["TreeNode"] = None + ): """ + Initialises a tree node with a value, key and a parent node. Value here can be anything and the key can be of any type. If not key is provided, then a hash of the data is used. + Args: + value (T): The value of the node + key (Optional[Any]): The key of the node. If not provided, a hash of the data is used. + parent (Optional[TreeNode]): The parent node of the current node. + + Notes: + The key is used to identify the node in the tree. If not key is provided, a hash of the data is used. """ self.data = value self.key = key or hash(value) + self.parent = parent def __repr__(self): return f"TreeNode(data={self.data}, key={self.key})" + + def __eq__(self, other: "TreeNode[T]") -> bool: + """Checks if this node is equal to another node based on the data they contain + Args: + other(TreeNode): the other node to compare this node to + Returns: + bool: True if this node and the other node are equal, False otherwise + """ + if other is None: + return False + + if not isinstance(other, TreeNode): + return False + + if other.data == self.data: + return True + + return False + + def __hash__(self): + return hash(self.data) diff --git a/datastructures/trees/trie/__init__.py b/datastructures/trees/trie/__init__.py index 0e511794..2d180273 100644 --- a/datastructures/trees/trie/__init__.py +++ b/datastructures/trees/trie/__init__.py @@ -2,7 +2,4 @@ from datastructures.trees.trie.trie import Trie -__all__ = [ - "Trie", - "TrieNode" -] +__all__ = ["Trie", "TrieNode"] diff --git a/puzzles/heap/maximal_score_after_k_operations/test_maximal_score.py b/puzzles/heap/maximal_score_after_k_operations/test_maximal_score.py index 8890f4c4..38c51cb7 100644 --- a/puzzles/heap/maximal_score_after_k_operations/test_maximal_score.py +++ b/puzzles/heap/maximal_score_after_k_operations/test_maximal_score.py @@ -4,74 +4,175 @@ class MaximalScoreAfterKOperationsTestCase(unittest.TestCase): def test_1(self): - nums = [10,20,30,40,50] + nums = [10, 20, 30, 40, 50] k = 4 expected = 140 actual = max_score(nums, k) self.assertEqual(expected, actual) def test_2(self): - nums = [5,12,7,3,10] + nums = [5, 12, 7, 3, 10] k = 3 expected = 29 actual = max_score(nums, k) self.assertEqual(expected, actual) def test_3(self): - nums = [6,9,15] + nums = [6, 9, 15] k = 2 expected = 24 actual = max_score(nums, k) self.assertEqual(expected, actual) def test_4(self): - nums = [1,10,3,3,3] + nums = [1, 10, 3, 3, 3] k = 3 expected = 17 actual = max_score(nums, k) self.assertEqual(expected, actual) def test_5(self): - nums = [7,10,16] + nums = [7, 10, 16] k = 2 expected = 26 actual = max_score(nums, k) self.assertEqual(expected, actual) def test_6(self): - nums = [5,120,7,30,10] + nums = [5, 120, 7, 30, 10] k = 3 expected = 190 actual = max_score(nums, k) self.assertEqual(expected, actual) def test_7(self): - nums = [100,200,300,400,500] + nums = [100, 200, 300, 400, 500] k = 4 expected = 1400 actual = max_score(nums, k) self.assertEqual(expected, actual) def test_8(self): - nums = [20,20,20,20] + nums = [20, 20, 20, 20] k = 3 expected = 60 actual = max_score(nums, k) self.assertEqual(expected, actual) def test_9(self): - nums = [81698,68947,77662,46592,13226,37325,2800,22504,99833,77083,38068,40934,3640,33631,84634,66457,21309, - 64949,94392,3553,68692,31662,17348,42805,32143,7099,88341,65391,8164,65035,22205,88755,80232,84970, - 19213,36774,33975,47386,74761,4893,9040,8263,60379,88511,49040,89068,72601,17683,17871,46156,2805,10247, - 54658,27427,51671,81935,59171,70215,56400,83874,9230,31194,98266,84404,1200,89589,70329,39209,19461, - 19022,86927,26496,27561,96403,78150,47498,5696,78065,75672,44842,64855,19760,57351,7788,41209,89214, - 24315,6398,60738,88636,71885,44987,28782,13700,78965,47534,82496,66162,89596,3646,73107,13112,28574, - 37445,14997,98860] + nums = [ + 81698, + 68947, + 77662, + 46592, + 13226, + 37325, + 2800, + 22504, + 99833, + 77083, + 38068, + 40934, + 3640, + 33631, + 84634, + 66457, + 21309, + 64949, + 94392, + 3553, + 68692, + 31662, + 17348, + 42805, + 32143, + 7099, + 88341, + 65391, + 8164, + 65035, + 22205, + 88755, + 80232, + 84970, + 19213, + 36774, + 33975, + 47386, + 74761, + 4893, + 9040, + 8263, + 60379, + 88511, + 49040, + 89068, + 72601, + 17683, + 17871, + 46156, + 2805, + 10247, + 54658, + 27427, + 51671, + 81935, + 59171, + 70215, + 56400, + 83874, + 9230, + 31194, + 98266, + 84404, + 1200, + 89589, + 70329, + 39209, + 19461, + 19022, + 86927, + 26496, + 27561, + 96403, + 78150, + 47498, + 5696, + 78065, + 75672, + 44842, + 64855, + 19760, + 57351, + 7788, + 41209, + 89214, + 24315, + 6398, + 60738, + 88636, + 71885, + 44987, + 28782, + 13700, + 78965, + 47534, + 82496, + 66162, + 89596, + 3646, + 73107, + 13112, + 28574, + 37445, + 14997, + 98860, + ] k = 1000 expected = 7709375 actual = max_score(nums, k) self.assertEqual(expected, actual) -if __name__ == '__main__': +if __name__ == "__main__": unittest.main() diff --git a/pystrings/is_prefix/test_is_prefix_of_word.py b/pystrings/is_prefix/test_is_prefix_of_word.py index fe402595..27c64c85 100644 --- a/pystrings/is_prefix/test_is_prefix_of_word.py +++ b/pystrings/is_prefix/test_is_prefix_of_word.py @@ -53,5 +53,5 @@ def test_7(self): self.assertEqual(expected, actual) -if __name__ == '__main__': +if __name__ == "__main__": unittest.main() diff --git a/pystrings/longest_self_contained_substring/__init__.py b/pystrings/longest_self_contained_substring/__init__.py index 6a9a9b8f..b429c316 100644 --- a/pystrings/longest_self_contained_substring/__init__.py +++ b/pystrings/longest_self_contained_substring/__init__.py @@ -45,7 +45,7 @@ def longest_self_contained_substring(s: str) -> int: continue # Check if this substring is self-contained - substring = s[start:end + 1] + substring = s[start : end + 1] is_self_contained = True # For each character in the substring, verify it doesn't appear outside diff --git a/pystrings/longest_self_contained_substring/test_longest_self_contained_substring.py b/pystrings/longest_self_contained_substring/test_longest_self_contained_substring.py index 7b7683c0..5673ae36 100644 --- a/pystrings/longest_self_contained_substring/test_longest_self_contained_substring.py +++ b/pystrings/longest_self_contained_substring/test_longest_self_contained_substring.py @@ -138,5 +138,5 @@ def test_11(self): self.assertEqual(expected, actual) -if __name__ == '__main__': +if __name__ == "__main__": unittest.main() diff --git a/pystrings/similar_string_groups/__init__.py b/pystrings/similar_string_groups/__init__.py index 84837a39..0a4bdb91 100644 --- a/pystrings/similar_string_groups/__init__.py +++ b/pystrings/similar_string_groups/__init__.py @@ -52,6 +52,7 @@ def is_similar(s1: str, s2: str) -> bool: # The final count of disjoint sets is the number of groups return uf.get_count() + # Helper: Decide if two strings are similar def are_similar(s1, s2): diff = [] @@ -61,9 +62,8 @@ def are_similar(s1, s2): if len(diff) > 2: return False - return (len(diff) == 0) or ( - len(diff) == 2 and diff[0] == diff[1][::-1] - ) + return (len(diff) == 0) or (len(diff) == 2 and diff[0] == diff[1][::-1]) + def num_similar_groups_2(strs: List[str]) -> int: n = len(strs) diff --git a/pystrings/similar_string_groups/test_similar_string_groups.py b/pystrings/similar_string_groups/test_similar_string_groups.py index 29a23234..6752ccd6 100644 --- a/pystrings/similar_string_groups/test_similar_string_groups.py +++ b/pystrings/similar_string_groups/test_similar_string_groups.py @@ -22,8 +22,14 @@ def test_3(self): self.assertEqual(expected, actual) def test_4(self): - strs = ["fgtdvepeqcfajhlzkwlpuhrwfcueqfbs","fgcdvppeqcfajhlzkwluehrwftuefqbs","fgtdvepeqcfajhlzkwlpuhrwfcuefqbs", - "fgcdvepeqcfajhlzkwluphrwftuefqbs","fgldvepeqcfajhlzkwcuphrwftuefqbs","fgtdvefeqcpajhlzkwlpuhrwfcuefqbs"] + strs = [ + "fgtdvepeqcfajhlzkwlpuhrwfcueqfbs", + "fgcdvppeqcfajhlzkwluehrwftuefqbs", + "fgtdvepeqcfajhlzkwlpuhrwfcuefqbs", + "fgcdvepeqcfajhlzkwluphrwftuefqbs", + "fgldvepeqcfajhlzkwcuphrwftuefqbs", + "fgtdvefeqcpajhlzkwlpuhrwfcuefqbs", + ] expected = 2 actual = num_similar_groups(strs) self.assertEqual(expected, actual) @@ -49,12 +55,18 @@ def test_3(self): self.assertEqual(expected, actual) def test_4(self): - strs = ["fgtdvepeqcfajhlzkwlpuhrwfcueqfbs","fgcdvppeqcfajhlzkwluehrwftuefqbs","fgtdvepeqcfajhlzkwlpuhrwfcuefqbs", - "fgcdvepeqcfajhlzkwluphrwftuefqbs","fgldvepeqcfajhlzkwcuphrwftuefqbs","fgtdvefeqcpajhlzkwlpuhrwfcuefqbs"] + strs = [ + "fgtdvepeqcfajhlzkwlpuhrwfcueqfbs", + "fgcdvppeqcfajhlzkwluehrwftuefqbs", + "fgtdvepeqcfajhlzkwlpuhrwfcuefqbs", + "fgcdvepeqcfajhlzkwluphrwftuefqbs", + "fgldvepeqcfajhlzkwcuphrwftuefqbs", + "fgtdvefeqcpajhlzkwlpuhrwfcuefqbs", + ] expected = 2 actual = num_similar_groups_2(strs) self.assertEqual(expected, actual) -if __name__ == '__main__': +if __name__ == "__main__": unittest.main() From b133f6d377d48ec8be6de8eecd9c1ed650e9fc8e Mon Sep 17 00:00:00 2001 From: github-actions <${GITHUB_ACTOR}@users.noreply.github.com> Date: Mon, 24 Nov 2025 05:48:41 +0000 Subject: [PATCH 2/5] updating DIRECTORY.md --- DIRECTORY.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/DIRECTORY.md b/DIRECTORY.md index c41219e7..e0d6b823 100644 --- a/DIRECTORY.md +++ b/DIRECTORY.md @@ -284,11 +284,13 @@ * [Test Binary Search Tree Delete Node](https://github.com/BrianLusina/PythonSnips/blob/master/datastructures/trees/binary/search_tree/test_binary_search_tree_delete_node.py) * [Test Binary Search Tree Insert](https://github.com/BrianLusina/PythonSnips/blob/master/datastructures/trees/binary/search_tree/test_binary_search_tree_insert.py) * [Test Binary Search Tree Search](https://github.com/BrianLusina/PythonSnips/blob/master/datastructures/trees/binary/search_tree/test_binary_search_tree_search.py) + * [Test Utils](https://github.com/BrianLusina/PythonSnips/blob/master/datastructures/trees/binary/test_utils.py) * Tree * [Test Binary Tree](https://github.com/BrianLusina/PythonSnips/blob/master/datastructures/trees/binary/tree/test_binary_tree.py) * [Test Binary Tree Deserialize](https://github.com/BrianLusina/PythonSnips/blob/master/datastructures/trees/binary/tree/test_binary_tree_deserialize.py) * [Test Binary Tree Serialize](https://github.com/BrianLusina/PythonSnips/blob/master/datastructures/trees/binary/tree/test_binary_tree_serialize.py) * [Test Binary Tree Visible Nodes](https://github.com/BrianLusina/PythonSnips/blob/master/datastructures/trees/binary/tree/test_binary_tree_visible_nodes.py) + * [Utils](https://github.com/BrianLusina/PythonSnips/blob/master/datastructures/trees/binary/utils.py) * Btree * [Node](https://github.com/BrianLusina/PythonSnips/blob/master/datastructures/trees/btree/node.py) * Heaps From c9280329ae02d0376081bbfc641a5804e8c7444a Mon Sep 17 00:00:00 2001 From: Lusina <12752833+BrianLusina@users.noreply.github.com> Date: Mon, 24 Nov 2025 09:10:13 +0300 Subject: [PATCH 3/5] feat(datastructures, binary tree): lowest common ancestor --- datastructures/trees/binary/utils.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/datastructures/trees/binary/utils.py b/datastructures/trees/binary/utils.py index 181bbf39..db2a8a82 100644 --- a/datastructures/trees/binary/utils.py +++ b/datastructures/trees/binary/utils.py @@ -45,6 +45,21 @@ def lowest_common_ancestor( def lowest_common_ancestor_ptr( node_one: BinaryTreeNode, node_two: BinaryTreeNode ) -> BinaryTreeNode | None: + """ + Returns the lowest common ancestor of 2 nodes in the Binary Tree using a two-pointer approach. + + This algorithm uses two pointers starting at node_one and node_two. Both pointers move up the tree + via parent pointers. When a pointer reaches the root (parent is None), it switches to the other + starting node. By switching starting points, both pointers travel the same total distance and meet + at the lowest common ancestor. + + Time Complexity: O(h) where h is the height of the tree + Space Complexity: O(1) as only two pointers are used + + :param node_one: BinaryTreeNode + :param node_two: BinaryTreeNode + :return: BinaryTreeNode | None - The lowest common ancestor, or None if not found + """ ptr1, ptr2 = node_one, node_two while ptr1 != ptr2: From 1cc9d1017ed12c8e46ca5ca1c6ed47678384e89d Mon Sep 17 00:00:00 2001 From: Lusina <12752833+BrianLusina@users.noreply.github.com> Date: Mon, 24 Nov 2025 09:13:22 +0300 Subject: [PATCH 4/5] chore(lint): format files --- .../numeric_python/statistics/TestChecker.py | 10 +- datastructures/trees/binary/test_utils.py | 5 +- poetry.lock | 117 +++++++++++++++++- .../test_evaluate_division.py | 6 +- puzzles/poker/__init__.py | 54 +++++--- pyproject.toml | 3 +- pystrings/hexadecimal/__init__.py | 8 +- utils/basic/list1.py | 1 + utils/basic/list2.py | 1 + utils/basic/solution/list1.py | 1 + utils/basic/solution/list2.py | 1 + utils/basic/solution/string2.py | 1 + utils/basic/string2.py | 1 + 13 files changed, 177 insertions(+), 32 deletions(-) diff --git a/datascience/numeric_python/statistics/TestChecker.py b/datascience/numeric_python/statistics/TestChecker.py index 60d8d225..428026a5 100755 --- a/datascience/numeric_python/statistics/TestChecker.py +++ b/datascience/numeric_python/statistics/TestChecker.py @@ -8,8 +8,8 @@ def __init__(self, n): @staticmethod def test_function(actual, expected): print - "Test for " + str( - actual - ) + " passed " if actual == expected else "Test for " + str( - actual - ) + " failed, expected " + str(expected) + ( + "Test for " + str(actual) + " passed " + if actual == expected + else "Test for " + str(actual) + " failed, expected " + str(expected) + ) diff --git a/datastructures/trees/binary/test_utils.py b/datastructures/trees/binary/test_utils.py index 3589eb89..ed9e7fdc 100644 --- a/datastructures/trees/binary/test_utils.py +++ b/datastructures/trees/binary/test_utils.py @@ -1,5 +1,8 @@ import unittest -from datastructures.trees.binary.utils import lowest_common_ancestor, lowest_common_ancestor_ptr +from datastructures.trees.binary.utils import ( + lowest_common_ancestor, + lowest_common_ancestor_ptr, +) from datastructures.trees.binary.node import BinaryTreeNode diff --git a/poetry.lock b/poetry.lock index 3e371be6..dc0ed8b3 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,5 +1,68 @@ # This file is automatically @generated by Poetry 1.8.5 and should not be changed by hand. +[[package]] +name = "black" +version = "25.11.0" +description = "The uncompromising code formatter." +optional = false +python-versions = ">=3.9" +files = [ + {file = "black-25.11.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:ec311e22458eec32a807f029b2646f661e6859c3f61bc6d9ffb67958779f392e"}, + {file = "black-25.11.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:1032639c90208c15711334d681de2e24821af0575573db2810b0763bcd62e0f0"}, + {file = "black-25.11.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0c0f7c461df55cf32929b002335883946a4893d759f2df343389c4396f3b6b37"}, + {file = "black-25.11.0-cp310-cp310-win_amd64.whl", hash = "sha256:f9786c24d8e9bd5f20dc7a7f0cdd742644656987f6ea6947629306f937726c03"}, + {file = "black-25.11.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:895571922a35434a9d8ca67ef926da6bc9ad464522a5fe0db99b394ef1c0675a"}, + {file = "black-25.11.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:cb4f4b65d717062191bdec8e4a442539a8ea065e6af1c4f4d36f0cdb5f71e170"}, + {file = "black-25.11.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d81a44cbc7e4f73a9d6ae449ec2317ad81512d1e7dce7d57f6333fd6259737bc"}, + {file = "black-25.11.0-cp311-cp311-win_amd64.whl", hash = "sha256:7eebd4744dfe92ef1ee349dc532defbf012a88b087bb7ddd688ff59a447b080e"}, + {file = "black-25.11.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:80e7486ad3535636657aa180ad32a7d67d7c273a80e12f1b4bfa0823d54e8fac"}, + {file = "black-25.11.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:6cced12b747c4c76bc09b4db057c319d8545307266f41aaee665540bc0e04e96"}, + {file = "black-25.11.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6cb2d54a39e0ef021d6c5eef442e10fd71fcb491be6413d083a320ee768329dd"}, + {file = "black-25.11.0-cp312-cp312-win_amd64.whl", hash = "sha256:ae263af2f496940438e5be1a0c1020e13b09154f3af4df0835ea7f9fe7bfa409"}, + {file = "black-25.11.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:0a1d40348b6621cc20d3d7530a5b8d67e9714906dfd7346338249ad9c6cedf2b"}, + {file = "black-25.11.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:51c65d7d60bb25429ea2bf0731c32b2a2442eb4bd3b2afcb47830f0b13e58bfd"}, + {file = "black-25.11.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:936c4dd07669269f40b497440159a221ee435e3fddcf668e0c05244a9be71993"}, + {file = "black-25.11.0-cp313-cp313-win_amd64.whl", hash = "sha256:f42c0ea7f59994490f4dccd64e6b2dd49ac57c7c84f38b8faab50f8759db245c"}, + {file = "black-25.11.0-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:35690a383f22dd3e468c85dc4b915217f87667ad9cce781d7b42678ce63c4170"}, + {file = "black-25.11.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:dae49ef7369c6caa1a1833fd5efb7c3024bb7e4499bf64833f65ad27791b1545"}, + {file = "black-25.11.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5bd4a22a0b37401c8e492e994bce79e614f91b14d9ea911f44f36e262195fdda"}, + {file = "black-25.11.0-cp314-cp314-win_amd64.whl", hash = "sha256:aa211411e94fdf86519996b7f5f05e71ba34835d8f0c0f03c00a26271da02664"}, + {file = "black-25.11.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:a3bb5ce32daa9ff0605d73b6f19da0b0e6c1f8f2d75594db539fdfed722f2b06"}, + {file = "black-25.11.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:9815ccee1e55717fe9a4b924cae1646ef7f54e0f990da39a34fc7b264fcf80a2"}, + {file = "black-25.11.0-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:92285c37b93a1698dcbc34581867b480f1ba3a7b92acf1fe0467b04d7a4da0dc"}, + {file = "black-25.11.0-cp39-cp39-win_amd64.whl", hash = "sha256:43945853a31099c7c0ff8dface53b4de56c41294fa6783c0441a8b1d9bf668bc"}, + {file = "black-25.11.0-py3-none-any.whl", hash = "sha256:e3f562da087791e96cefcd9dda058380a442ab322a02e222add53736451f604b"}, + {file = "black-25.11.0.tar.gz", hash = "sha256:9a323ac32f5dc75ce7470501b887250be5005a01602e931a15e45593f70f6e08"}, +] + +[package.dependencies] +click = ">=8.0.0" +mypy-extensions = ">=0.4.3" +packaging = ">=22.0" +pathspec = ">=0.9.0" +platformdirs = ">=2" +pytokens = ">=0.3.0" + +[package.extras] +colorama = ["colorama (>=0.4.3)"] +d = ["aiohttp (>=3.10)"] +jupyter = ["ipython (>=7.8.0)", "tokenize-rt (>=3.2.0)"] +uvloop = ["uvloop (>=0.15.2)"] + +[[package]] +name = "click" +version = "8.3.1" +description = "Composable command line interface toolkit" +optional = false +python-versions = ">=3.10" +files = [ + {file = "click-8.3.1-py3-none-any.whl", hash = "sha256:981153a64e25f12d547d3426c367a4857371575ee7ad18df2a6183ab0545b2a6"}, + {file = "click-8.3.1.tar.gz", hash = "sha256:12ff4785d337a1bb490bb7e9c2b1ee5da3112e94a8622f26a6c77f5d2fc6842a"}, +] + +[package.dependencies] +colorama = {version = "*", markers = "platform_system == \"Windows\""} + [[package]] name = "colorama" version = "0.4.6" @@ -22,6 +85,17 @@ files = [ {file = "iniconfig-2.0.0.tar.gz", hash = "sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3"}, ] +[[package]] +name = "mypy-extensions" +version = "1.1.0" +description = "Type system extensions for programs checked with the mypy type checker." +optional = false +python-versions = ">=3.8" +files = [ + {file = "mypy_extensions-1.1.0-py3-none-any.whl", hash = "sha256:1be4cccdb0f2482337c4743e60421de3a356cd97508abadd57d47403e94f5505"}, + {file = "mypy_extensions-1.1.0.tar.gz", hash = "sha256:52e68efc3284861e772bbcd66823fde5ae21fd2fdb51c62a211403730b916558"}, +] + [[package]] name = "packaging" version = "24.2" @@ -47,6 +121,33 @@ files = [ [package.extras] dev = ["jinja2"] +[[package]] +name = "pathspec" +version = "0.12.1" +description = "Utility library for gitignore style pattern matching of file paths." +optional = false +python-versions = ">=3.8" +files = [ + {file = "pathspec-0.12.1-py3-none-any.whl", hash = "sha256:a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08"}, + {file = "pathspec-0.12.1.tar.gz", hash = "sha256:a482d51503a1ab33b1c67a6c3813a26953dbdc71c31dacaef9a838c4e29f5712"}, +] + +[[package]] +name = "platformdirs" +version = "4.5.0" +description = "A small Python package for determining appropriate platform-specific dirs, e.g. a `user data dir`." +optional = false +python-versions = ">=3.10" +files = [ + {file = "platformdirs-4.5.0-py3-none-any.whl", hash = "sha256:e578a81bb873cbb89a41fcc904c7ef523cc18284b7e3b3ccf06aca1403b7ebd3"}, + {file = "platformdirs-4.5.0.tar.gz", hash = "sha256:70ddccdd7c99fc5942e9fc25636a8b34d04c24b335100223152c2803e4063312"}, +] + +[package.extras] +docs = ["furo (>=2025.9.25)", "proselint (>=0.14)", "sphinx (>=8.2.3)", "sphinx-autodoc-typehints (>=3.2)"] +test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=8.4.2)", "pytest-cov (>=7)", "pytest-mock (>=3.15.1)"] +type = ["mypy (>=1.18.2)"] + [[package]] name = "pluggy" version = "1.5.0" @@ -113,6 +214,20 @@ aspect = ["aspectlib"] elasticsearch = ["elasticsearch"] histogram = ["pygal", "pygaljs", "setuptools"] +[[package]] +name = "pytokens" +version = "0.3.0" +description = "A Fast, spec compliant Python 3.14+ tokenizer that runs on older Pythons." +optional = false +python-versions = ">=3.8" +files = [ + {file = "pytokens-0.3.0-py3-none-any.whl", hash = "sha256:95b2b5eaf832e469d141a378872480ede3f251a5a5041b8ec6e581d3ac71bbf3"}, + {file = "pytokens-0.3.0.tar.gz", hash = "sha256:2f932b14ed08de5fcf0b391ace2642f858f1394c0857202959000b68ed7a458a"}, +] + +[package.extras] +dev = ["black", "build", "mypy", "pytest", "pytest-cov", "setuptools", "tox", "twine", "wheel"] + [[package]] name = "ruff" version = "0.3.7" @@ -142,4 +257,4 @@ files = [ [metadata] lock-version = "2.0" python-versions = "^3.11" -content-hash = "c189df998ea76b1405876bb79789fe9a3a4213153d7a8d74ac81b34eab3af1e3" +content-hash = "4484a420e200cd1d0c3cdcfe56e39afed7dcc2666889169211e9742516ef6c07" diff --git a/puzzles/graphs/evaluate_division/test_evaluate_division.py b/puzzles/graphs/evaluate_division/test_evaluate_division.py index ea568c37..e0783e2e 100644 --- a/puzzles/graphs/evaluate_division/test_evaluate_division.py +++ b/puzzles/graphs/evaluate_division/test_evaluate_division.py @@ -6,7 +6,8 @@ class EvaluateDivisionTestCase(unittest.TestCase): def test_1(self): """should return [6.00000,0.50000,-1.00000,1.00000,-1.00000] from equations = [["a","b"],["b","c"]], - values = [2.0,3.0], queries = [["a","c"],["b","a"],["a","e"],["a","a"],["x","x"]]""" + values = [2.0,3.0], queries = [["a","c"],["b","a"],["a","e"],["a","a"],["x","x"]] + """ expected = [6.00000, 0.50000, -1.00000, 1.00000, -1.00000] equations = [["a", "b"], ["b", "c"]] values = [2.0, 3.0] @@ -16,7 +17,8 @@ def test_1(self): def test_2(self): """should return [3.75000,0.40000,5.00000,0.20000] from equations = [["a","b"],["b","c"],["bc","cd"]], - values = [1.5,2.5,5.0], queries = [["a","c"],["c","b"],["bc","cd"],["cd","bc"]]""" + values = [1.5,2.5,5.0], queries = [["a","c"],["c","b"],["bc","cd"],["cd","bc"]] + """ expected = [3.75000, 0.40000, 5.00000, 0.20000] equations = [["a", "b"], ["b", "c"], ["bc", "cd"]] values = [1.5, 2.5, 5.0] diff --git a/puzzles/poker/__init__.py b/puzzles/poker/__init__.py index 3a199bef..0070e5f7 100755 --- a/puzzles/poker/__init__.py +++ b/puzzles/poker/__init__.py @@ -24,24 +24,40 @@ def hand_rank(hand): straight = (len(counts) == 5) and (max(ranks) - min(ranks) == 4) flush = len(set([s for r, s in hand])) == 1 return ( - 9 - if counts == (5,) - else 8 - if straight and flush - else 7 - if counts == (4, 1) - else 6 - if counts == (3, 2) - else 5 - if flush - else 4 - if straight - else 3 - if counts == (3, 1, 1) - else 2 - if counts == (2, 2, 1) - else 1 - if counts == (2, 1, 1, 1) - else 0, + ( + 9 + if counts == (5,) + else ( + 8 + if straight and flush + else ( + 7 + if counts == (4, 1) + else ( + 6 + if counts == (3, 2) + else ( + 5 + if flush + else ( + 4 + if straight + else ( + 3 + if counts == (3, 1, 1) + else ( + 2 + if counts == (2, 2, 1) + else 1 + if counts == (2, 1, 1, 1) + else 0 + ) + ) + ) + ) + ) + ) + ) + ), ranks, ) diff --git a/pyproject.toml b/pyproject.toml index 87c9b379..1ca20869 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,7 +1,7 @@ [tool.poetry] name = "pythonsnips" version = "0.1.0" -description = "" +description = "Algorithms, data structures and code snippets written in Python" authors = ["BrianLusina <12752833+BrianLusina@users.noreply.github.com>"] license = "MIT" readme = "README.md" @@ -12,6 +12,7 @@ parameterized = "^0.9.0" [tool.poetry.group.dev.dependencies] ruff = "^0.3.5" +black = "^25.11.0" [tool.poetry.group.test.dependencies] pytest-benchmark = "^5.1.0" diff --git a/pystrings/hexadecimal/__init__.py b/pystrings/hexadecimal/__init__.py index 4d46d284..01109be0 100755 --- a/pystrings/hexadecimal/__init__.py +++ b/pystrings/hexadecimal/__init__.py @@ -28,9 +28,11 @@ def hexa_first_principles(hexadecimal): # if c in hexdigits[10: len(hexdigits) - 6] is equivalent to abcdef # converts each character in hexa to digit hex_list = [ - ord(c) - ord("a") + 10 - if c in hexdigits[10 : len(hexdigits) - 6] - else ord(c) - ord("0") + ( + ord(c) - ord("a") + 10 + if c in hexdigits[10 : len(hexdigits) - 6] + else ord(c) - ord("0") + ) for c in hexa ] diff --git a/utils/basic/list1.py b/utils/basic/list1.py index 31722727..cea79acb 100755 --- a/utils/basic/list1.py +++ b/utils/basic/list1.py @@ -15,6 +15,7 @@ # It's ok if you do not complete all the functions, and there # are some additional functions to try in list2.py. + # A. match_ends # Given a list of strings, return the count of the number of # strings where the string length is 2 or more and the first diff --git a/utils/basic/list2.py b/utils/basic/list2.py index 7034a9e7..c6b2e8a2 100755 --- a/utils/basic/list2.py +++ b/utils/basic/list2.py @@ -8,6 +8,7 @@ # Additional basic list exercises + # D. Given a list of numbers, return a list where # all adjacent == elements have been reduced to a single element, # so [1, 2, 2, 3] returns [1, 2, 3]. You may create a new list or diff --git a/utils/basic/solution/list1.py b/utils/basic/solution/list1.py index e05b04d3..e5b48de5 100755 --- a/utils/basic/solution/list1.py +++ b/utils/basic/solution/list1.py @@ -15,6 +15,7 @@ # It's ok if you do not complete all the functions, and there # are some additional functions to try in list2.py. + # A. match_ends # Given a list of strings, return the count of the number of # strings where the string length is 2 or more and the first diff --git a/utils/basic/solution/list2.py b/utils/basic/solution/list2.py index 851dc629..5f4ad3f6 100755 --- a/utils/basic/solution/list2.py +++ b/utils/basic/solution/list2.py @@ -8,6 +8,7 @@ # Additional basic list exercises + # D. Given a list of numbers, return a list where # all adjacent == elements have been reduced to a single element, # so [1, 2, 2, 3] returns [1, 2, 3]. You may create a new list or diff --git a/utils/basic/solution/string2.py b/utils/basic/solution/string2.py index e4315de9..744ffac6 100755 --- a/utils/basic/solution/string2.py +++ b/utils/basic/solution/string2.py @@ -8,6 +8,7 @@ # Additional basic string exercises + # D. verbing # Given a string, if its length is at least 3, # add 'ing' to its end. diff --git a/utils/basic/string2.py b/utils/basic/string2.py index 578140c1..6a81dd37 100755 --- a/utils/basic/string2.py +++ b/utils/basic/string2.py @@ -8,6 +8,7 @@ # Additional basic string exercises + # D. verbing # Given a string, if its length is at least 3, # add 'ing' to its end. From 52d4054367b4a2e341bd8b3c5f8ac976b954f28d Mon Sep 17 00:00:00 2001 From: Lusina <12752833+BrianLusina@users.noreply.github.com> Date: Mon, 24 Nov 2025 09:18:29 +0300 Subject: [PATCH 5/5] chore(lint): format files --- datastructures/lists/is_sorted_how/__init__.py | 4 +--- machine_learning/soccer_predictions/features.py | 8 ++++++-- machine_learning/soccer_predictions/match_stats.py | 4 +++- puzzles/poker/__init__.py | 4 +--- utils/file_system/__init__.py | 3 ++- 5 files changed, 13 insertions(+), 10 deletions(-) diff --git a/datastructures/lists/is_sorted_how/__init__.py b/datastructures/lists/is_sorted_how/__init__.py index 7bd6a0df..b223664f 100755 --- a/datastructures/lists/is_sorted_how/__init__.py +++ b/datastructures/lists/is_sorted_how/__init__.py @@ -15,9 +15,7 @@ def is_sorted_and_how_2(arr): return ( "yes, ascending" if is_sorted_with(arr, operator.le) - else "yes, descending" - if is_sorted_with(arr, operator.ge) - else "no" + else "yes, descending" if is_sorted_with(arr, operator.ge) else "no" ) diff --git a/machine_learning/soccer_predictions/features.py b/machine_learning/soccer_predictions/features.py index 3e019243..0396c9fd 100755 --- a/machine_learning/soccer_predictions/features.py +++ b/machine_learning/soccer_predictions/features.py @@ -78,7 +78,9 @@ ON cur.matchid = opp.matchid WHERE cur.teamid != opp.teamid ORDER BY cur.matchid, cur.teamid - """ % {"team_game_summary": match_stats.team_game_summary_query()} + """ % { + "team_game_summary": match_stats.team_game_summary_query() +} def get_match_history(history_size): @@ -284,7 +286,9 @@ def get_wc_history_query(history_size): return """ SELECT * FROM (%(history_query)s) WHERE competitionid = 4 ORDER BY timestamp DESC, matchid, is_home - """ % {"history_query": get_history_query(history_size)} + """ % { + "history_query": get_history_query(history_size) + } def get_wc_features(history_size): diff --git a/machine_learning/soccer_predictions/match_stats.py b/machine_learning/soccer_predictions/match_stats.py index 1b1ada73..88f36414 100755 --- a/machine_learning/soccer_predictions/match_stats.py +++ b/machine_learning/soccer_predictions/match_stats.py @@ -65,7 +65,9 @@ WHERE dist < 40) GROUP BY matchid, teamid ORDER BY matchid, teamid - """ % {"touch_table": _TOUCH_TABLE} + """ % { + "touch_table": _TOUCH_TABLE +} # Subquery to compute raw number of goals scored. Does not take # into account own-goals (i.e. if a player scores an own-goal against diff --git a/puzzles/poker/__init__.py b/puzzles/poker/__init__.py index 0070e5f7..506b159d 100755 --- a/puzzles/poker/__init__.py +++ b/puzzles/poker/__init__.py @@ -48,9 +48,7 @@ def hand_rank(hand): else ( 2 if counts == (2, 2, 1) - else 1 - if counts == (2, 1, 1, 1) - else 0 + else 1 if counts == (2, 1, 1, 1) else 0 ) ) ) diff --git a/utils/file_system/__init__.py b/utils/file_system/__init__.py index 1c2e3a88..b8f42929 100755 --- a/utils/file_system/__init__.py +++ b/utils/file_system/__init__.py @@ -41,7 +41,8 @@ def obtain_dir_basenames(self): :return: dict with the key as the directory name and value as the base name """ return { - "Dir: " + os.path.dirname(self.make_absolute_path()): "Base" + "Dir: " + + os.path.dirname(self.make_absolute_path()): "Base" + os.path.basename(self.make_absolute_path()) }