奇偶位交换 牛客网 程序员面试金典 C++ Python

时间:2022-11-06 00:41:16

奇偶位交换 牛客网 程序员面试金典 C++ Python

  • 题目描述

  • 请编写程序交换一个数的二进制的奇数位和偶数位。(使用越少的指令越好)

  • 给定一个int x,请返回交换后的数int。

  • 测试样例:

  • 10

  • 返回:5

C++

class Exchange {
public:
    //run:2ms memory:480k
    int exchangeOddEven(int x) {
        return ((x & 0xaaaaaaaa) >> 1 | (x & 0x55555555) << 1);
    }
};

Python

class Exchange:
    #run:21ms memory:5864k
    def exchangeOddEven(self, x):
         return ((x & 0xaaaaaaaa) >> 1 | (x & 0x55555555) << 1)