693. 交替位二进制数
难度简单131收藏分享切换为英文接收动态反馈
给定一个正整数,检查它的二进制表示是否总是 0、1 交替出现:换句话说,就是二进制表示中相邻两位的数字永不相同 。
示例 1:
输入:n = 5输出:true解释:5 的二进制表示是:101 示例 2:
输入:n = 7输出:false解释:7 的二进制表示是:111. 示例 3:
输入:n = 11输出:false解释:11 的二进制表示是:1011.
提示:
1 <= n <= 231 - 1
将n右移一位,然后将n右移一位得到的值与n进行异或,如果n是0和1交替出现的,则异或之后的值必全为1
则ans 理论为应该全为1 ,因此ans+1理论应该全为0,则ans与ans+1 应该为0(这是n是0和1交替出现的情况)
否则输出False 。
Python代码:
class Solution:def hasAlternatingBits(self, n: int) -> bool:ans = n ^ (n >> 1)return ans & (ans + 1) == 0 C++代码:【LeetCode每日一题题解:693. 交替位二进制数-题解-python && C++源代码-经典位运算】
class Solution {public:bool hasAlternatingBits(int n) {long a = n^(n>>1);return (a&(a+1)) == 0;}};
- 春季老年人吃什么养肝?土豆、米饭换着吃
- 三八妇女节节日祝福分享 三八妇女节节日语录
- 老人谨慎!选好你的“第三只脚”
- 校方进行了深刻的反思 青岛一大学生坠亡校方整改校规
- 脸皮厚的人长寿!有这特征的老人最长寿
- 长寿秘诀:记住这10大妙招 100%增寿
- 春季老年人心血管病高发 3条保命要诀
- 眼睛花不花要看四十八 老年人怎样延缓老花眼
- 香槟然能防治老年痴呆症? 一天三杯它人到90不痴呆
- 老人手抖的原因 为什么老人手会抖
