Skip to content

Latest commit

 

History

History
66 lines (56 loc) · 1.48 KB

README.md

File metadata and controls

66 lines (56 loc) · 1.48 KB

Given a positive integer, check whether it has alternating bits: namely, if two adjacent bits will always have different values.

Example 1:

Input: 5
Output: True
Explanation:
The binary representation of 5 is: 101

Example 2:

Input: 7
Output: False
Explanation:
The binary representation of 7 is: 111.

Example 3:

Input: 11
Output: False
Explanation:
The binary representation of 11 is: 1011.

Example 4:

Input: 10
Output: True
Explanation:
The binary representation of 10 is: 1010.

Companies:
Yahoo

Related Topics:
Bit Manipulation

Similar Questions:

Solution 1.

// OJ: https://leetcode.com/problems/binary-number-with-alternating-bits/
// Author: github.com/lzl124631x
// Time: O(1)
// Space: O(1)
class Solution {
public:
    bool hasAlternatingBits(int n) {
        int prev = -1;
        while (n) {
            int d = n % 2;
            n /= 2;
            if (prev == d) return false;
            prev = d;
        }
        return true;
    }
};