0
点赞
收藏
分享

微信扫一扫

【Leetcode_easy】693. Binary Number with Alternating Bits

做个橙梦 2022-07-12 阅读 25

problem

​​693. Binary Number with Alternating Bits​​

solution1:

class Solution {
public:
bool hasAlternatingBits(int n) {
int bit = -1;
while(n>0)
{
/*
errr...
if(n&1 && bit==1) return false;
else if(n&1) bit = 1;
if(n&1==0 && bit==0) return false;
else if(n&1==0) bit = 0;
*/
if(n&1==1)
{
if(bit==1) return false;
bit = 1;
}
else
{
if(bit==0) return false;
bit = 0;
}
n >>= 1;//err.
}
return true;
}
};

solution2:

通过异或操作判断最低位是否在0/1之间转换进行。

class Solution {
public:
bool hasAlternatingBits(int n) {
int d = (n&1);
while((n&1)==d)
{
d ^= 1;//
n >>= 1;
}
return n==0;
}
};

 

 

参考

1. ​​Leetcode_easy_693. Binary Number with Alternating Bits​​;

2. ​​Grandyang​​;

举报

相关推荐

0 条评论