This website contains ALL LeetCode **Premium** problems for
**FREE!!**.

All leaked interview problems are collected from Internet.

All leaked interview problems are collected from Internet.

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

**Example 1:**

Input:5Output:TrueExplanation:The binary representation of 5 is: 101

**Example 2:**

Input:7Output:FalseExplanation:The binary representation of 7 is: 111.

**Example 3:**

Input:11Output:FalseExplanation:The binary representation of 11 is: 1011.

**Example 4:**

Input:10Output:TrueExplanation:The binary representation of 10 is: 1010.

b'

\n\n#### Approach #1: Convert to String [Accepted]

\n

\n#### Approach #2: Divide By Two [Accepted]

\n

\n

'
**Intuition and Algorithm**

Let\'s convert the given number into a string of binary digits. Then, we should simply check that no two adjacent digits are the same.

\n\n**Complexity Analysis**

- \n
- \n
Time Complexity: . For arbitrary inputs, we do work, where is the number of bits in

\n`n`

. However, . \n - \n
Space complexity: , or alternatively .

\n \n

\n

**Intuition and Algorithm**

We can get the last bit and the rest of the bits via `n % 2`

and `n // 2`

operations. Let\'s remember `cur`

, the last bit of `n`

. If the last bit ever equals the last bit of the remaining, then two adjacent bits have the same value, and the answer is `False`

. Otherwise, the answer is `True`

.

Also note that instead of `n % 2`

and `n // 2`

, we could have used operators `n & 1`

and `n >>= 1`

instead.

**Complexity Analysis**

- \n
- \n
Time Complexity: . For arbitrary inputs, we do work, where is the number of bits in

\n`n`

. However, . \n - \n
Space complexity: .

\n \n

\n

Analysis written by: @awice

\n