Skip to content

Commit 832f9b0

Browse files
Update count_number_of_one_bits.py
1 parent a551700 commit 832f9b0

File tree

1 file changed

+9
-8
lines changed

1 file changed

+9
-8
lines changed

bit_manipulation/count_number_of_one_bits.py

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -64,9 +64,10 @@ def get_set_bits_count_using_lookup_table(number: int) -> int:
6464
"""
6565
Count the number of set bits in a 32-bit integer using a precomputed lookup table.
6666
67-
Note: I see similar approach in GeeksforGeeks, but their implementation is little different.
68-
Link to Code: https://www.geeksforgeeks.org/dsa/count-set-bits-integer-using-lookup-table/
69-
67+
Note: I see similar approach in GeeksforGeeks, but the implementation is little different.
68+
Link to Code:
69+
https://www.geeksforgeeks.org/dsa/count-set-bits-integer-using-lookup-table/
70+
7071
>>> get_set_bits_count_using_lookup_table(25)
7172
3
7273
>>> get_set_bits_count_using_lookup_table(37)
@@ -84,17 +85,17 @@ def get_set_bits_count_using_lookup_table(number: int) -> int:
8485
...
8586
ValueError: the value of input must not be negative
8687
"""
87-
_LOOKUP_TABLE = [bin(i).count("1") for i in range(256)]
88+
_lookup_table = [bin(i).count("1") for i in range(256)]
8889

8990
if number < 0:
9091
raise ValueError("the value of input must not be negative")
9192

9293
# Split 32-bit number into four 8-bit chunks and use lookup table
9394
return (
94-
_LOOKUP_TABLE[number & 0xFF]
95-
+ _LOOKUP_TABLE[(number >> 8) & 0xFF]
96-
+ _LOOKUP_TABLE[(number >> 16) & 0xFF]
97-
+ _LOOKUP_TABLE[(number >> 24) & 0xFF]
95+
_lookup_table[number & 0xFF]
96+
+ _lookup_table[(number >> 8) & 0xFF]
97+
+ _lookup_table[(number >> 16) & 0xFF]
98+
+ _lookup_table[(number >> 24) & 0xFF]
9899
)
99100

100101

0 commit comments

Comments
 (0)