LeetCode演算法入門 顛倒二進位制位 解法與分析

2021-09-27 06:16:30 字數 985 閱讀 6535

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

示例 1:

輸入: 00000010100101000001111010011100

輸出: 00111001011110000010100101000000

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

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

示例 2:

輸入:11111111111111111111111111111101

輸出:10111111111111111111111111111111

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

因此返回 3221225471 其二進位制表示形式為 10101111110010110010011101101001。

高階:

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

想不到,看了看力扣的大佬回答:

思路:此題只需要採用位運算,每次將原來的數字向左移動1位,就需要把該末尾加到我們的數字中去即可,此題需要注意的是一點要迴圈32次,不僅是有32位,最重要的不能判斷到原來的數字為0就結束迴圈,這樣就有可能的導致沒有補足0所以要迴圈32次。

同時對於左移而言,末尾全部補上的是0,而對於右移而言左邊補的是原本最高位的數字,比如乙個32位的數字最高位(也就是符號位)為1就全部補上1,如果為0 就全部補上0.這個知識點也是面試常考的。

**如下:

class

solution

return result;}}

;

LeetCode顛倒整數

給定乙個 32 位有符號整數,將整數中的數字進行反轉。示例 1 輸入 123 輸出 321 示例 2 輸入 123 輸出 321 示例 3 輸入 120 輸出 21 注意 假設我們的環境只能儲存 32 位有符號整數,其數值範圍是 231,231 1 根據這個假設,如果反轉後的整數溢位,則返回 0。解...

leetcode 顛倒整數

給定乙個 32 位有符號整數,將整數中的數字進行反轉。示例 1 輸入 123輸出 321示例 2 輸入 123輸出 321示例 3 輸入 120輸出 21注意 假設我們的環境只能儲存 32 位有符號整數,其數值範圍是 231,231 1 根據這個假設,如果反轉後的整數溢位,則返回 0。class s...

顛倒整數 c 演算法 leetcode7

給定乙個 32 位有符號整數,將整數中的數字進行反轉。示例 1 輸入 123 輸出 321 示例 2 輸入 123 輸出 321 示例 3 輸入 120 輸出 21 注意 假設我們的環境只能儲存 32 位有符號整數,其數值範圍是 231,231 1 根據這個假設,如果反轉後的整出,則返回 0。翻轉數...