Skip to content

Commit b062619

Browse files
Fixed ruff checks
1 parent 11cf5b1 commit b062619

1 file changed

Lines changed: 15 additions & 10 deletions

File tree

bit_manipulation/max_xor_bit_trie.py

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -18,14 +18,14 @@ class TrieNode:
1818
"""Node of the Bitwise Trie."""
1919

2020
def __init__(self) -> None:
21-
self.child: list[TrieNode | None] = [None, None] # child[0] for bit 0, child[1] for bit 1
21+
self.child: list[TrieNode | None] = [None, None]
2222

2323

2424
class BitwiseTrieMaxXOR:
2525
"""
2626
Use:
27-
solver = BitwiseTrieMaxXOR()
28-
result = solver.find_maximum_xor(nums)
27+
solver = BitwiseTrieMaxXOR()
28+
result = solver.find_maximum_xor(nums)
2929
"""
3030

3131
def __init__(self) -> None:
@@ -40,11 +40,11 @@ def insert(self, num: int) -> None:
4040
>>> trie.insert(10)
4141
"""
4242
node = self.root
43-
for i in range(31, -1, -1): # 32-bit integers
43+
for i in range(31, -1, -1):
4444
bit = (num >> i) & 1
45-
if not node.child[bit]:
45+
if node.child[bit] is None:
4646
node.child[bit] = TrieNode()
47-
node = node.child[bit]
47+
node = node.child[bit] # type: ignore[misc]
4848

4949
def query_max_xor(self, num: int) -> int:
5050
"""
@@ -69,10 +69,11 @@ def query_max_xor(self, num: int) -> int:
6969
for i in range(31, -1, -1):
7070
bit = (num >> i) & 1
7171
toggle = 1 - bit
72-
if node.child[toggle]:
72+
if node.child[toggle] is not None:
7373
max_xor |= 1 << i
7474
node = node.child[toggle]
7575
else:
76+
assert node.child[bit] is not None
7677
node = node.child[bit]
7778
return max_xor
7879

@@ -111,11 +112,16 @@ def find_maximum_xor(self, nums: list[int]) -> int:
111112
print("All doctests passed!")
112113

113114
# Manual test suite
114-
print("\n************ Manual Testing Bitwise Trie Maximum XOR Algorithm ************\n")
115+
print(
116+
"\n************ Manual Testing Bitwise Trie Maximum XOR Algorithm "
117+
"************\n"
118+
)
119+
115120
test_cases = [
116121
([3, 10, 5, 25, 2, 8], 28),
117122
([42], 0),
118-
([0xFFFFFFFF, 0], 0xFFFFFFFF),
123+
([8, 1], 9),
124+
([0, 0, 0], 0),
119125
([7, 7, 7], 0),
120126
([1, 2, 3, 4, 5], 7),
121127
([16, 8, 4, 2, 1], 24),
@@ -130,4 +136,3 @@ def find_maximum_xor(self, nums: list[int]) -> int:
130136
assert result == expected, f"Testcase {idx} failed!"
131137

132138
print("\nAll manual test cases successfully passed!")
133-
print("********** End of Testing Bitwise Trie Maximum XOR Algorithm **********")

0 commit comments

Comments
 (0)