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

求最大连续bit数

https://www.nowcoder.com/practice/4b1658fd8ffb4217bc3b7e85a38cfaf2

题目估计是想考二分法,以下是二分法解答。

def fun():
    a = bin(int(input().strip()))[2:]
    res_range = [0, len(a)]  # 结果应在的范围
    while True:
        # 二分法的范围已经够小了就暴力遍历
        if res_range[1] - res_range[0] < 5:
            for i in range(res_range[1], res_range[0]-1, -1):
                if i*'1' in a:
                    print(i)
                    return
        # 二分过程
        mid = sum(res_range) // 2
        if mid * '1' in a:
            res_range = [mid, res_range[1]]
        else:
            res_range = [res_range[0], mid]

fun()

全部评论

相关推荐

脾气小祖宗:这简历摸到都得狠狠地消毒液洗手😂
点赞 评论 收藏
分享
阿武同学:基本信息保留前面三行,其他的可以全部删掉,邮箱最重要的你没写,主修课程精简到8个以内,实习里面2/3/4都是水内容的,非要写的话建议两到三句话,项目经历排版优化下,自我评价缩到三行
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务