Skip to content

Commit 071639b

Browse files
applied suggested changes
1 parent 98c7772 commit 071639b

File tree

1 file changed

+13
-14
lines changed

1 file changed

+13
-14
lines changed
Lines changed: 13 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
1-
"Reference: https://www.geeksforgeeks.org/position-of-rightmost-set-bit/"
1+
# Reference: https://www.geeksforgeeks.org/position-of-rightmost-set-bit/
22

33
def get_index_of_rightmost_set_bit(number: int) -> int:
4-
54
"""
65
Take in a positive integer 'number'.
76
Returns the zero-based index of first set bit in that 'number' from right.
@@ -21,21 +20,21 @@ def get_index_of_rightmost_set_bit(number: int) -> int:
2120
ValueError: Input must be a non-negative integer
2221
"""
2322

24-
if number>=0 and type(number)==int:
25-
intermediate = number&~(number-1)
26-
index = 0
27-
while intermediate:
28-
intermediate>>=1
29-
index+=1
30-
return index-1
31-
else: raise ValueError("Input must be a non-negative integer")
23+
if 0 > number and not isinstance(number, int):
24+
raise ValueError("Input must be a non-negative integer")
3225

33-
"""
34-
Finding the index of rightmost set bit has some very peculiar use-cases,
35-
especially in finding missing or/and repeating numbers in a list of positive integers.
36-
"""
26+
intermediate = number&~(number-1)
27+
index = 0
28+
while intermediate:
29+
intermediate>>=1
30+
index+=1
31+
return index-1
3732

3833
if __name__ == "__main__":
34+
"""
35+
Finding the index of rightmost set bit has some very peculiar use-cases,
36+
especially in finding missing or/and repeating numbers in a list of positive integers.
37+
"""
3938
import doctest
4039

4140
doctest.testmod()

0 commit comments

Comments
 (0)