leetcode190 顛倒二進位制

2021-08-30 15:12:08 字數 477 閱讀 9544

思想:

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

class solution:

# @param n, an integer

# @return an integer

def reversebits(self, n):

ans = 0

mask = 1

for _ in range(32):

ans <<= 1

if mask & n:

ans |= 1

n >>= 1

return ans

之前我的想法是將n轉換成二進位制表示,然後再反轉。但這是確實是麻煩了許多。以上是大佬的想法,值得好好學習!!!

leetcode 190 顛倒二進位制位

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

LeetCode190 顛倒二進位制位

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

LeetCode 190 顛倒二進位制位

顛倒給定的 32 位無符號整數的二進位制位。示例 1 輸入 00000010100101000001111010011100輸出 00111001011110000010100101000000解釋 輸入的二進位制串00000010100101000001111010011100表示無符號整數432...