【LeetCode】201. 数字范围按位与

1. 题目

2. 分析

这题挺难想的,我到现在还没想明白,为啥只用左区间和右区间就能找到目标值了,而不用挨个做与操作?

3. 代码

python 复制代码
class Solution:
    def rangeBitwiseAnd(self, left: int, right: int) -> int:
        left_bin = bin(left).zfill(32)
        right_bin = bin(right).zfill(32)
        cnt = 0
        while(left_bin != right_bin):
            left = left >> 1
            right = right >> 1
            left_bin = bin(left).zfill(32)
            right_bin = bin(right).zfill(32)
            cnt += 1
        return left << cnt

其实代码可以不用上面这样复杂,官方题解很简洁。不过我这个代码提供了一个Python的新颖的API(zfill函数)。这个函数是对字符串进行前导零补足。

相关推荐
情怀姑娘13 分钟前
面试题---------------场景+算法
java·算法·mybatis
chbmvdd18 分钟前
week5题解
数据结构·c++·算法
用户120391129472620 分钟前
面试官最爱问的字符串反转:7种JavaScript实现方法详解
算法·面试
vir0227 分钟前
小齐的技能团队(dp)
数据结构·c++·算法·图论
Star在努力1 小时前
C语言复习八(2025.11.18)
c语言·算法·排序算法
南山安1 小时前
从反转字符串看透面试官的“内心戏”:你的算法思维到底怎么样?
javascript·算法·面试
雪不下1 小时前
计算机中的数学:概率(2)
算法
zs宝来了1 小时前
HOT100-二分查找类型题
算法
_w_z_j_1 小时前
数组中的最长连续子序列
数据结构·算法
地平线开发者1 小时前
征程 6E/M 计算平台部署指南
算法·自动驾驶