File tree Expand file tree Collapse file tree 1 file changed +13
-14
lines changed Expand file tree Collapse file tree 1 file changed +13
-14
lines changed Original file line number Diff line number Diff line change 1
- " Reference: https://www.geeksforgeeks.org/position-of-rightmost-set-bit/"
1
+ # Reference: https://www.geeksforgeeks.org/position-of-rightmost-set-bit/
2
2
3
3
def get_index_of_rightmost_set_bit (number : int ) -> int :
4
-
5
4
"""
6
5
Take in a positive integer 'number'.
7
6
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:
21
20
ValueError: Input must be a non-negative integer
22
21
"""
23
22
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" )
32
25
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
37
32
38
33
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
+ """
39
38
import doctest
40
39
41
40
doctest .testmod ()
You can’t perform that action at this time.
0 commit comments