我必须找到整数的二进制间隙。
正整数 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))
Run Code Online (Sandbox Code Playgroud)
小智 5
简单快捷
def solution(N):
binary = bin(N)[2:].strip("0").split("1")
return max(len(x) for x in binary)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1876 次 |
| 最近记录: |