题解 | #求最大连续bit数#

密码强度等级

http://www.nowcoder.com/practice/52d382c2a7164767bca2064c1c9d5361

方法1:python

while True:
    try:
        a = bin(int(input()))
        maxnumstr = a.count('1')
        maxnum = int(maxnumstr)
        num = 0
        for i in range(maxnum):
            if '1' * (i + 1) in a:
                num = i + 1
            else:
                break
        print(num)
    except:
        break

方法2:python

while True:
    try:
        n = int(input())
        c = 0
        m = 0
        while n:
            if (n % 2):
                c += 1
                if c > m:
                    m = c
            else:
                c = 0
            n = int(n/2)
        print(m)
    except:
        break

方法3: 最优解法
python

while True:
    try:
        number = int(input())
        str_num = bin(number)
        print(len((max(str(str_num).replace("0b","").split("0")))))
    except:
            break
全部评论

相关推荐

牛客868257804号:九个中铁八个中建
点赞 评论 收藏
分享
11-15 19:28
已编辑
蚌埠坦克学院 硬件开发
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务