leetcode693】的更多相关文章

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 E…
判断一个数字的二进制形式是不是01交替的. 如5=101,返回True 如7=111,返回False 这道题可以用位运算来实现.看到01交替,就想到移位运算.如果n是01交替的,移位之后进行异或,则得到的数字x各个位都是1.也就是x=n^(n>>1) 剩下的任务就是判断一个数字是否是2的幂减一.也就是((x+1)&x)==0…
class Solution { public: bool hasAlternatingBits(int n) { ; while (n) { ; ) { last = x; } else { if (x == last) { return false; } else { last = x; } } n >>= ;//n右移1位 } return true; } };…
给定一个正整数,检查他是否为交替位二进制数:换句话说,就是他的二进制数相邻的两个位数永不相等. 示例 1: 输入: 5 输出: True 解释: 5的二进制数是: 101 示例 2: 输入: 7 输出: False 解释: 7的二进制数是: 111 示例 3: 输入: 11 输出: False 解释: 11的二进制数是: 1011 示例 4: 输入: 10 输出: True 解释: 10的二进制数是: 1010 class Solution { public: bool hasAlternati…