本文共 811 字,大约阅读时间需要 2 分钟。
为了正确颠倒给定的32位无符号整数的二进制位,我们可以采用以下优化方法:
def reverseBits(self, n: int) -> int: n = n & 0xFFFFFFFF # 确保n是32位 bin_str = bin(n)[2:] # 去掉0b前缀 bin_str = bin_str.zfill(32) # 补足到32位 reversed_str = bin_str[::-1] # 反转字符串 return int(reversed_str, 2)
def reverseBits(self, n: int) -> int: n = n & 0xFFFFFFFF # 确保n是32位 bin_str = bin(n)[2:] # 去掉0b前缀 bin_str = bin_str.zfill(32) # 补足到32位 result = 0 for bit in reversed(bin_str): result = (result << 1) | int(bit) return result
n & 0xFFFFFFFF确保输入在32位范围内。zfill(32)确保二进制字符串为32位。这两种方法均能在常数时间内完成任务,适用于所有32位无符号整数情况。
转载地址:http://qium.baihongyu.com/