原题链接:693. 交替位二进制数
solution: 每次判断最后一位与前一位是否相同
class Solution {
public:
bool hasAlternatingBits(int n) {
int pre=2;
while(n!=0){
int cur = n%2; //最后一位
if(cur==pre) return false;
pre = cur;
n/=2;
}
return true;
}
};
位运算:
class Solution {
public:
bool hasAlternatingBits(int n) {
long long x = n^(n>>1);
if((x & (x+1))==0) return true;
return false;
}
};