693. 交替位二進位制數
阿新 • • 發佈:2018-12-16
給定一個正整數,檢查他是否為交替位二進位制數:換句話說,就是他的二進位制數相鄰的兩個位數永不相等。
示例 1:
輸入: 5 輸出: True 解釋: 5的二進位制數是: 101 示例 2:
輸入: 7 輸出: False 解釋: 7的二進位制數是: 111 示例 3:
輸入: 11 輸出: False 解釋: 11的二進位制數是: 1011 示例 4:
輸入: 10 輸出: True 解釋: 10的二進位制數是: 1010
解答:判斷二進位制相鄰的兩個數是否相等。
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
人家這思路,不容易想到呀!