题目
Given a positive integer, check whether it has alternating bits: namely, if two adjacent bits will always have different values.
Example 1:
Input: n = 5
Output: true
Explanation: The binary representation of 5 is: 101
Example 2:
Input: n = 7
Output: false
Explanation: The binary representation of 7 is: 111.
Example 3:
Input: n = 11
Output: false
Explanation: The binary representation of 11 is: 1011.
Constraints:
- 1 <= n <= 2^31 - 1
代码
class Solution {
public:
bool hasAlternatingBits(int n) {
if(n % 2 == 0)
n >>= 1;
while(n)
{
if((n & 3) != 1)
break;
n >>= 2;
}
if(n)
return false;
return true;
}
};
题后记
据说明天解封,加油吧!!
再见五月,
你好六月。