颠倒给定的 32 位无符号整数的二进制位。

示例

输入:n = 00000010100101000001111010011100
输出:964176192 (00111001011110000010100101000000)
解释:输入的二进制串 00000010100101000001111010011100 表示无符号整数 43261596,
因此返回 964176192,其二进制表示形式为 00111001011110000010100101000000。

解析

好吧,我承认二进制的题目我不擅长,还有 Python 有各种切片的骚操作,当字符串处理比较好理解。

代码示例

class Solution:
    def reverseBits(self, n: int) -> int:
        s = str(bin(n))[2:].zfill(32)
        return int(s[::-1], 2)

执行用时:40 ms, 在所有 Python3 提交中击败了 57.64% 的用户.

本文为 陈华 原创,欢迎转载,但请注明出处:http://ichenhua.cn/read/405