給定一個正整數(shù),檢查他是否為交替位二進制數(shù):換句話說,就是他的二進制數(shù)相鄰的兩個位數(shù)永不相等。
示例 1:
輸入: 5
輸出: True
解釋:
5的二進制數(shù)是: 101
示例 2:
輸入: 7
輸出: False
解釋:
7的二進制數(shù)是: 111
示例 3:
輸入: 11
輸出: False
解釋:
11的二進制數(shù)是: 1011
示例 4:
輸入: 10
輸出: True
解釋:
10的二進制數(shù)是: 1010
解答:判斷二進制相鄰的兩個數(shù)是否相等。
class Solution(object):
def hasAlternatingBits(self, n):
"""
:type n: int
:rtype: bool
"""
a = bin(n)[2:]
for i in range(len(a) - 1):
if int(a[i]) ^ int(a[i + 1]) == 0:
return False
return True
看到一個骨骼清奇的代碼:
class Solution(object):
def hasAlternatingBits(self, n):
"""
:type n: int
:rtype: bool
"""
a = bin(n)
if '00' in a or '11' in a:
return False
return True
人家這思路,不容易想到呀!