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