【一天一道Leetcode】顛倒二進(jìn)制位

本篇推文共計(jì)2000個(gè)字,閱讀時(shí)間約3分鐘。
01
題目描述

題目描述:
顛倒給定的 32 位無符號整數(shù)的二進(jìn)制位。
示例 1:
輸入: 00000010100101000001111010011100
輸出: 00111001011110000010100101000000
解釋:
輸入的二進(jìn)制串 00000010100101000001111010011100
表示無符號整數(shù) 43261596,
因此返回 964176192,
其二進(jìn)制表示形式為 00111001011110000010100101000000。提示:
輸入是一個(gè)長度為32的二進(jìn)制字符串。
02
思路和方法
由題意可知:
我們可以將輸入num視為一個(gè)長為32的二進(jìn)制串,從高往低枚舉num的每一位,通過取余的形式判斷該位數(shù)是否數(shù)值為1。
同時(shí)新建一個(gè)新的二進(jìn)制串rev,如果num所在位數(shù)取余后結(jié)果為1,將1賦給rev。
這樣進(jìn)行一輪操作后,將rev的二進(jìn)制左移1位,num二進(jìn)制右移一位,繼續(xù)判斷下一個(gè)數(shù)。
直到最后完全輸出rev的結(jié)果,
即為顛倒二進(jìn)制后的結(jié)果。

我們的代碼輸出為:
class Solution:
def reverseBits(self, n: int) -> int:
rev=0
i=0
for i in range(32):
rev<<=1
if n%2==1:
rev+=1
n>>=1
i+=1
return rev
【年終總結(jié)】你好2021,再見2020。

【玩轉(zhuǎn)Python】DIY貪吃蛇游戲復(fù)盤

【一天一道Leetcode】丑數(shù)
你與世界
只差一個(gè)
公眾號
評論
圖片
表情

