原题地址:https://leetcode.com/problems/binary-number-with-alternating-bits/description/
大意:判断一个数的二进制数是不是0和1相间的。
思路:通过“与1”的方法得到最后一位,然后数字右移,判断跟之前的最后一位相不相同。
class Solution:
def hasAlternatingBits(self, n):
"""
:type n: int
:rtype: bool
"""
last = n & 1
n >>= 1
while n :
if last == (n & 1):
return False
last = n & 1
n >>= 1
return True
a = Solution()
print (a.hasAlternatingBits(5))