题解 | #求最大连续bit数#
求最大连续bit数
http://www.nowcoder.com/practice/4b1658fd8ffb4217bc3b7e85a38cfaf2
while True:
try:
num = int(input())
a = bin(num)
a = a[2:]
a = list(a)
max_len = 0
d = []
for i in range(len(a)):
if(a[i] == '1'): #找到1的所有位置
d.append(i)
if(len(d) == 1): #只有一个输出1
print(1)
else: #至少两个
max_len = 1 #不管连续不连续至少有1
count = 0 #多少个连续1
for i in range(len(d) - 1):
if(d[i+1] == d[i] + 1):
if(count == 0): #若是一开始计算
count = 1 #count = 1,这样保证发现一次连续1的时候就是2
count += 1
if(count > max_len):
max_len = count
else: #不连续则重新开始计算
count = 0
print(max_len)
except:
break
华为机试题解(prod.by kedao) 文章被收录于专栏
华为实习机试题解