多伦多Apple面试算法题挑战:LeetCode 190 位反转(Python解法) 

最近在准备多伦多Apple的面试,遇到了一道经典的位操作题目 - LeetCode 190. Reverse Bits ![]()
题目要求将一个32位无符号整数的二进制位反转。看似简单,但考察对位运算的理解程度!![]()
分享下我的Python解法:
def reverseBits(n: int) -> int:
res = 0
for _ in range(32):
res = (res << 1) | (n & 1)
n >>= 1
return res
解题思路 
- 初始化结果res为0
- 循环32次(因为是无符号32位整数)
- 每次将res左移1位,并加上n的最低位
- 将n右移1位处理下一位
时间复杂度 
O(1) - 固定32次循环
空间复杂度 
O(1) - 只用了常数空间
有没有其他更优解?欢迎讨论!![]()
![]()
#算法 #面试准备 #Python #位运算 #多伦多Tech
