LeetCode 190 顛倒二進位制位

2021-10-01 12:53:46 字數 723 閱讀 1124

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

示例:

輸入:

00000010100101000001111010011100

輸出:00111001011110000010100101000000

解釋: 輸入的二進位制串 00000010100101000001111010011100 表示無符號整數 43261596,

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

解題思路:左右移動:思路:此題只需要採用位運算,每次將原來的數字向右移動1位,就需要把該末尾加到我們的結果數字中去即可。此題需要注意的一點是要迴圈32次(不能判斷到原來的數字為0就結束迴圈,這樣有可能會導致沒有補足0,所以要迴圈32次)。同時對於左移而言,末尾全部補上的是0。而對於右移而言左邊補的是原本最高位的數字(僅針對有符號整型),比如乙個32位的數字最高位為1就全部補上1,如果為0就全部補上0,這個知識點也是面試常考的。(此題規定了uint32_t,不會出現這種情況)

class

solution

return res;}}

;

另解:

class

solution

return res;}}

;

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...