【每日一题】交换配对

配对交换
【每日一题】交换配对_第1张图片

目录

  • 思路:
  • 代码实现:

思路:

当我们看到与二进制位有关时就要联想到位操作符。

一个数字可以写成二进制的形式,也可以写成偶数位二进制与奇数位二进制相加的形式,例如
【每日一题】交换配对_第2张图片

代码实现:

class Solution {
public:
    int exchangeBits(int num) {
        int odd = num & 0x55555555;
        int even = num & 0xaaaaaaaa;
        return (odd << 1) + (even >> 1);
    }
};

对位操作符感兴趣可以看看博主的这篇文章:位操作练习题目。

你可能感兴趣的:(c++,开发语言)