LeetCode:190. 颠倒二进制位
1、题目描述
颠倒给定的 32 位无符号整数的二进制位。
示例:
输入: 43261596
输出: 964176192
解释: 43261596 的二进制表示形式为 00000010100101000001111010011100 ,
返回 964176192,其二进制表示形式为 00111001011110000010100101000000 。
进阶:
如果多次调用这个函数,你将如何优化你的算法?
2、题解
2.1、解法一
class Solution:
# @param n, an integer
# @return an integer
def reverseBits(self, n):
ret = bin(n)[2:]
ret = reversed(ret)
l = list(ret)
l.extend(['0' for i in range(32-len(l))])
s = "".join(l)
return int(s,2)
2.2、解法二
class Solution:
# @param n, an integer
# @return an integer
def reverseBits(self, n):
ret = bin(n)[2:]
ret = "".join(['0' for i in range(32-len(ret))]) +ret
new = reversed(ret)
print(new)
return int("".join(list(new)),2)

浙公网安备 33010602011771号