1. 程式人生 > >leetcode之Reverse Bits(190)

leetcode之Reverse Bits(190)

題目:

顛倒給定的 32 位無符號整數的二進位制位。

示例:

輸入: 43261596
輸出: 964176192
解釋: 43261596 的二進位制表示形式為 00000010100101000001111010011100 ,
     返回 964176192,其二進位制表示形式為 00111001011110000010100101000000 

進階:
如果多次呼叫這個函式,你將如何優化你的演算法?

python程式碼:

class Solution:
    def reverseBits(self, n):
        nums, res = [], 0
        while n >= 1:
            nums.append(n % 2)
            n = n // 2
        while len(nums) < 32:
            nums.append(0)
        for i,j in enumerate(nums[::-1]):
            res += j * 2** i
        return res