Given a positive integer, check whether it has alternating bits: namely, if two adjacent bits will always have different values.
Example 1:
Input: 5 Output: True Explanation: The binary representation of 5 is: 101
Example 2:
Input: 7 Output: False Explanation: The binary representation of 7 is: 111.
Example 3:
Input: 11 Output: False Explanation: The binary representation of 11 is: 1011.
Example 4:
Input: 10 Output: True Explanation: The binary representation of 10 is: 1010.
题目意思就是给你一个数,问你这个数的二进制是否有两个相邻位置相等。
思路很简单,上代码:
class Solution(object):
def hasAlternatingBits(self, n):
"""
:type n: int
:rtype: bool
"""
flag=n%2
n=n//2
a=1
while n>0:
if n%2==flag:
return False
flag=n%2
n=n//2
return True
s=Solution()
print(s.hasAlternatingBits(11))
我觉得这种解法是最清晰明了的。