查找最大二进制间隙

问题描述 投票:0回答:2

我必须找到整数的二进制间隔。

正整数N内的二进制间隙是连续零的任何最大序列,在N的二进制表示形式中,两端均被1包围。

例如:N = 1041二进制:10000010001结果:5(5个零,并用1包围)

下面是我的代码,尽管bin_no [22]为1,但是if语句从不进入内部。

def solution(N):
    bin_no = f'{N:32b}'
    print(len(bin_no))
    count = []

    for i in range(len(bin_no)):
        if bin_no[i] == 1:
            count[i] = 0
            j=i
            while(bin_no[j+1] != 1):
                count[i] +=1
                j +=1
            print (count[i])

print(solution(529))
python
2个回答
0
投票

0
投票
© www.soinside.com 2019 - 2024. All rights reserved.