LeetCode 190 顛倒二進位制位

2022-07-18 19:24:11 字數 862 閱讀 7639

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

示例:

輸入: 43261596

輸出: 964176192

解釋: 43261596 的二進位制表示形式為 00000010100101000001111010011100 ,

返回 964176192,其二進位制表示形式為 00111001011110000010100101000000 。

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

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)

leetcode190 顛倒二進位制

思想 定義變數ans儲存反轉之後的二進位制數,預設是全0。變數mask是1,若mask與n相與為真,則n的二進位制形式最後一位為1,此時ans需要和1或,使得當前為二進位制為1,反之ans不變即為0。n不斷左移 左移的目的是去除最後一位二進位制數 直到結束。class solution param ...

leetcode 190 顛倒二進位制位

顛倒給定的 32 位無符號整數的二進位制位。示例 輸入 43261596輸出 964176192解釋 43261596 的二進位制表示形式為00000010100101000001111010011100,返回 964176192,其二進位制表示形式為001110010111100000101001...

LeetCode190 顛倒二進位制位

顛倒給定的 32 位無符號整數的二進位制位。示例 輸入 43261596輸出 964176192解釋 43261596 的二進位制表示形式為00000010100101000001111010011100,返回 964176192,其二進位制表示形式為001110010111100000101001...