交替位二进制数

🎯 问题描述(来源于LeetCode)

1
给定一个正整数,检查它的二进制表示是否总是 0、1 交替出现:换句话说,就是二进制表示中相邻两位的数字永不相同。

💻 代码实现

1
2
3
4
5
6
7
8
9
class Solution:
def hasAlternatingBits(self, n: int) -> bool:
while n:
a=n&1
n>>=1
b=n&1
if a^b==0:
return False
return True

📊 性能分析

提交结果

  • 运行时间:0ms击败100.00 %
  • 内存消耗:17.66MB击败14.25 %

复杂度验证

  • 时间复杂度:O(1)O(1)
  • 空间复杂度:O(1)O(1)