leetcode3.28每日一题(693. 交替位二进制数)

81 阅读1分钟

easy,简简单单一行。 看一个数字是不是101010这种很简单,无非看两个,右移两位看看对应的位是否一样,右移一位看看对应的位是否有没有一样的。 比如101010看右2位1010这肯定是一样的,一位10101这肯定是不一样的。所以只判断这两个就行。

class Solution {
public:
    bool hasAlternatingBits(int n) {
         return (!(n & (n >> 1))) & ((n | (n >> 2)) == n);
    }
};