顛倒給定的 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...