python: 配对交换

tech2024-04-19  10

配对交换。编写程序,交换某个整数的奇数位和偶数位,尽量使用较少的指令(也就是说,位0与位1交换,位2与位3交换,以此类推)。 示例1: 输入:num = 2(或者0b10) 输出 1 (或者 0b01) 示例2: 输入:num = 3 输出:3 提示: num的范围在[0, 2^30 - 1]之间,不会发生整数溢出。

num & 0x55555555:保留了奇数位上的数 num & 0xaaaaaaaa:保留了奇数位上的数 奇数位右移,偶数位左移即可

class Solution: def exchangeBits(self, num: int) -> int: return ((num&0xaaaaaaaa)>>1)|((num&0x55555555)<<1)
最新回复(0)