LeetCode:190. 顛倒二進位制位
阿新 • • 發佈:2018-12-04
1、題目描述
顛倒給定的 32 位無符號整數的二進位制位。
示例:
輸入: 43261596 輸出: 964176192 解釋: 43261596 的二進位制表示形式為 00000010100101000001111010011100 , 返回 964176192,其二進位制表示形式為 00111001011110000010100101000000 。
進階:
如果多次呼叫這個函式,你將如何優化你的演算法?
2、題解
2.1、解法一
class Solution: # @param n, an integer # @return an integer def reverseBits(self, n): ret = bin(n)[2:] ret = reversed(ret) l = list(ret) l.extend(['0' for i in range(32-len(l))]) s = "".join(l) return int(s,2)
2.2、解法二
class Solution: # @param n, an integer # @return an integer def reverseBits(self, n): ret = bin(n)[2:] ret = "".join(['0' for i in range(32-len(ret))]) +ret new = reversed(ret) print(new) return int("".join(list(new)),2)