leetcode 190. 颠倒二进制位 python
颠倒给定的 32 位有符号整数的二进制位。
示例 1:
输入:n = 43261596
输出:964176192
解释:
| 整数 | 二进制 |
|---|---|
| 43261596 | 00000010100101000001111010011100 |
| 964176192 | 00111001011110000010100101000000 |
示例 2:
输入:n = 2147483644
输出:1073741822
解释:
| 整数 | 二进制 |
|---|---|
| 2147483644 | 01111111111111111111111111111100 |
| 1073741822 | 00111111111111111111111111111110 |
提示:
0 <= n <= 231 - 2n为偶数class Solution:def reverseBits(self, n: int) -> int:a = []while(n!=0):a.append(n%2)n//=2 length = len(a)if(length!=32):for i in range(length,32)://不足32位要补零a.append(0)cnt = 0sum = 0for i in range(31,-1,-1):sum += a[i]*(2**cnt)cnt+=1return sum
