本题注意点:想到了位运算,但第一反应还是先转成二进制 ,其实可以用十进制进行位运算。
import numpy as np
def hasAlternatingBits(n):
"""
:type n: int
:rtype: bool
"""
# version1: (我)
t = bin(n)[2:]
for i in range(len(t)-1):
if t[i] == t[i+1]:
return False
return True
# version2:
# last_digit = n & 1
# n = n >> 1
# while n:
# if (n & 1) == last_digit:
# return False
# last_digit = n & 1
# n = n >> 1
# return True
# sample:
n = 11
print(hasAlternatingBits(n))