[leetcode] 693. Binary Number with Alternating Bits _ Algorithm Problem Solve for python



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))])