I read a little bit and found python-longest-binary-gap SO question
def solution(N):
max_gap = 0
new_gap = 0
for i in range(N.bit_length()):
if N & (1 << i):
if new_gap > max_gap:
max_gap = new_gap
new_gap =0
else:
new_gap += 1
if new_gap > max_gap:
max_gap = new_gap
return max_gap
The problem is that it gives the wrong solution for 32 (5 instead of 0) or 64. How to fix this?