leetcode 顛倒二進位制位

2021-09-01 02:25:33 字數 1438 閱讀 3316

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

示例:

輸入:

43261596

輸出:964176192

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

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

class

solution

:# @param n, an integer

# @return an integer

defreversebits

(self, n)

: new_list =

for i in

bin(n)[2

:]:while

len(new_list)

!=32

: new_list.insert(0,

'0')

new_number =

''.join(new_list[::

-1])

return

int(new_number,

2)

常規操作,利用 bin() 函式求出二進位制表示,觀察發現題目所給的二進位制不夠 32 位前面補 0 。所以用了 while 迴圈判斷。最後在裝換成十進位制。

寫完,不行,要優化一下:

class

solution

:# @param n, an integer

# @return an integer

defreversebits

(self, n)

: new_list =

[i for i in

bin(n)[2

:]]while

len(new_list)

!=32

: new_list.insert(0,

'0')

new_list.reverse(

)return

int(

''.join(new_list),2

)

顛倒列表用了方法 reverse() 。

class

solution

:# @param n, an integer

# @return an integer

defreversebits

(self, n)

:return

int(

bin(n)[2

:].zfill(32)

[::-

1], base=

2)

好吧,我與大佬的距離就是不懂那麼多的函式呼叫(手動滑稽)。

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