class Solution {
public:
uint32_t reverseBits(uint32_t n) {
}
};
190. 颠倒二进制位
颠倒给定的 32 位无符号整数的二进制位。
提示:
-3
,输出表示有符号整数 -1073741825
。
示例 1:
输入:n = 00000010100101000001111010011100 输出:964176192 (00111001011110000010100101000000) 解释:输入的二进制串 00000010100101000001111010011100 表示无符号整数 43261596, 因此返回 964176192,其二进制表示形式为 00111001011110000010100101000000。
示例 2:
输入:n = 11111111111111111111111111111101 输出:3221225471 (10111111111111111111111111111111) 解释:输入的二进制串 11111111111111111111111111111101 表示无符号整数 4294967293, 因此返回 3221225471 其二进制表示形式为 10111111111111111111111111111111 。
提示:
32
的二进制字符串
进阶: 如果多次调用这个函数,你将如何优化你的算法?
原站题解
golang 解法, 执行用时: 0 ms, 内存消耗: 2.6 MB, 提交时间: 2021-07-26 14:10:12
func reverseBits(n uint32) (rev uint32) { for i := 0; i < 32 && n > 0; i++ { rev |= n & 1 << (31 - i) n >>= 1 } return }
python 解法, 执行用时: 40 ms, 内存消耗: N/A, 提交时间: 2018-08-25 12:23:43
class Solution: # @param n, an integer # @return an integer def reverseBits(self, n): b = bin(n) c = [i for i in str(b)[2:]] c.reverse() d = ''.join(c) + 32 * '0' d = '0b' + d[0:32] return int(d, 2)
javascript 解法, 执行用时: 128 ms, 内存消耗: N/A, 提交时间: 2018-08-25 12:12:36
/** * @param {number} n - a positive integer * @return {number} - a positive integer */ var reverseBits = function(n) { var b = n.toString(2); if ( b.length < 32 ) { b = new Array(33-b.length).join('0') + b; } /* b = new Array(33).join('0') + b; b = b.slice(-32); */ r_b = b.split('').reverse().join(''); return parseInt(r_b, 2); };