本题注意点: 类似于LeetCode821
https://blog.csdn.net/zuocuomiao/article/details/82150516
另外注意思维习惯的转变,以前用C++遇到max、∀问题都习惯设一个辅助变量MAX、ok,而在python中用列表生成式更简洁。
import numpy as np
def binaryGap(N):
"""
:type N: int
:rtype: int
"""
t = bin(N)
indexes = [i for i, e in enumerate(t) if e == '1']
if len(indexes) < 2:
return 0
return max(indexes[i+1]-indexes[i] for i in range(len(indexes)-1))
# sample
N = 8
print(binaryGap(N))