# LeetCode 693. Binary Number with Alternating Bits

## Description

https://leetcode.com/problems/binary-number-with-alternating-bits/

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.```

Example 4:

```Input: n = 10
Output: true
Explanation: The binary representation of 10 is: 1010.```

Example 5:

```Input: n = 3
Output: false
```

Constraints:

• `1 <= n <= 231 - 1`

## Explanation

Convert n to binary string and check if adjacent letters are different.

## Python Solution

``````class Solution:
def hasAlternatingBits(self, n: int) -> bool:
bin_n = bin(n)

prev = None

for c in bin_n[2:]:
if not prev:
prev = c
else:
if c == prev:
return False
prev = c

return True``````
• Time Complexity: O(N).
• Space Complexity: O(N).