LeetCode 693. 交替位二进制数(位运算)
发布日期:2021-07-01 03:15:31
浏览次数:2
分类:技术文章
本文共 399 字,大约阅读时间需要 1 分钟。
1. 题目
给定一个正整数,检查他是否为交替位二进制数:换句话说,就是他的二进制数相邻的两个位数永不相等。
输入: 5输出: True解释:5的二进制数是: 101输入: 7输出: False解释:7的二进制数是: 111输入: 11输出: False解释:11的二进制数是: 1011输入: 10输出: True解释:10的二进制数是: 1010
2. 解题
- 满足该特征的数,右移一位与其自己异或^,得到的全是11111
- 然后上面结果+1,变成100000(注意溢出)
- 然后11111和100000与& == 0
class Solution { public: bool hasAlternatingBits(int n) { n = n^(n>>1); return (((long)n+1)&n) == 0;//最外层括号不能省 }};
转载地址:https://michael.blog.csdn.net/article/details/101096121 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
感谢大佬
[***.8.128.20]2024年04月16日 23时44分50秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Go语言并发组件
2021-07-04
简析STUN协议
2021-07-04
使用 Minidumps 和 Visual Studio .NET 进行崩溃后调试
2021-07-04
Debug 和 Release 编译方式的本质区别
2021-07-04
struts返回xml数据例子
2021-07-04
内存对齐详解
2021-07-04
秋招总结(一)-C++归纳
2021-07-04
秋招总结(三)-操作系统归纳
2021-07-04
带缓冲I/O 和不带缓冲I/O的区别与联系
2021-07-04
LINUX CP命令详解
2021-07-04
source insight快捷键及使用技巧
2021-07-04
映 射 ALT 键
2021-07-04
vim使用快捷键F4生成文件头注释、F5生成main函数模板、F6生成.h文件框架模板
2021-07-04
用python解析html
2021-07-04
OV5620的视频驱动
2021-07-04
C++中两个类交叉定义或递归定义的解决办法
2021-07-04
ECharts is not Loaded解决方案
2021-07-04
echarts切换tab时,第一个图表显示,第二个图表不显示的解决办法
2021-07-04
记一次Hive 行转列 引起的GC overhead limit exceeded
2021-07-04