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 <= 2^31 - 1

Solution in python:

class Solution:
    def hasAlternatingBits(self, n: int) -> bool:
        prior = n & 1
        n >>= 1
        while n > 0:
            temp = n & 1
            n >>= 1
            if temp != prior:
                prior = temp
                continue
            else:
                return False
        return True
最后修改日期: 2021年2月5日

留言

撰写回覆或留言

发布留言必须填写的电子邮件地址不会公开。