1. Problem
693. 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.
Constraints:
- 1 <= n <= 2^31 - 1
2. Solution
I solved this problem like this.
class Solution:
def hasAlternatingBits(self, n: int) -> bool:
value = bin(n)[2:]
return value == ''.join([str((i+1) % 2) for i in range(len(value))])