LeetCode | 693. Binary Number with Alternating Bits

topic

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

the code

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;
    }
};

Postscript

It is said that the lockdown will be lifted tomorrow, come on! !

Goodbye May,
hello June.

Guess you like

Origin blog.csdn.net/iLOVEJohnny/article/details/125073791