easy,简简单单一行。 看一个数字是不是101010这种很简单,无非看两个,右移两位看看对应的位是否一样,右移一位看看对应的位是否有没有一样的。 比如101010看右2位1010这肯定是一样的,一位10101这肯定是不一样的。所以只判断这两个就行。
class Solution {
public:
bool hasAlternatingBits(int n) {
return (!(n & (n >> 1))) & ((n | (n >> 2)) == n);
}
};