题解 | #求最大连续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) 文章被收录于专栏

华为实习机试题解

全部评论

相关推荐

鼗:四级有点难绷,感觉能拿国家励志奖学金,学习能力应该蛮强的,四级确实不重要,但是拿这个卡你可是很恶心啊
点赞 评论 收藏
分享
威猛的小饼干正在背八股:挂到根本不想整理
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务