当前位置: 首页 > news >正文

LeetCode693:交换二进制位

LeetCode693

受前几个位运算题目的影响,第一直觉是构建一个掩码来匹配。因为01交错实际上也就两种情况。而且最大位长是已知的32位。那么交错情况必然是0xAAAAAAAA0x55555555的一部分。如果为奇数,那么最低位为1,只可能匹配0x55555555;反之匹配0xAAAAAAAA。如果两者匹配,两者异或的结果应该等于0。

按模板匹配

class Solution:def hasAlternatingBits(self, n: int) -> bool:# 只有两种模式length=n.bit_length()m0=0x55555555>>(32-length) # 确保前面0个数匹配m1=0xAAAAAAAA>>(32-length)return m0^n==0 or m1^n==0

不使用模板

先使用移位运算错开一位,然后进行或运算。如果两者之间是错位的,那么其异或结果必然全是1。反之存在相等位的话,异或结果对应位0。可以通过(x+1)^(x)来判断是否全为1

class Solution:def hasAlternatingBits(self, n: int) -> bool:# 如果相互交错,右移之后必然是两两不同的,即异或结果全为1x=(n>>1)^n# 判断是否为全为1,对于全为1的情况显然为真# 对于不全为1的情况,其必然在+1之后存在某个0变为1,与原来位置的0异或必为1# 这样当且仅当全为1的时候为真,反之为假return (x+1)&x==0
http://www.jsqmd.com/news/391799/

相关文章:

  • 装修必看:如何甄选窗纱一体铝门窗的可靠厂家,平移断桥提升窗/侧压平移推拉窗/铝门窗/慕莎尼奥门窗/门窗,铝门窗厂家排行 - 品牌推荐师
  • 深度学习项目训练环境效果展示:自动校验数据集完整性(图片损坏/尺寸异常)
  • mT5中文-base零样本增强模型作品:跨境电商用户评价情感中性化处理
  • 2026年船用减压阀市场:哪些品牌更受青睐?船用安全阀/船用舷侧阀/船舶配件/船用减压阀,船用减压阀厂商有哪些 - 品牌推荐师
  • gts growth.nim娱乐程序
  • 效率直接起飞! 降AI率工具 千笔·降AIGC助手 VS 云笔AI,MBA专属利器
  • 救命神器 10个降AI率网站测评:继续教育降AIGC必备工具推荐
  • 这次终于选对!9个AI论文软件深度测评,专科生毕业论文写作必备工具推荐
  • Spring Boot 事务失效的常见坑,我一次性给你讲清楚
  • 2026年市面上靠谱的半导体清洗机供应商排行榜,汽车零件超声波清洗机/全自动显影清洗机,半导体清洗机供应厂家哪家靠谱 - 品牌推荐师
  • 深度测评!自考论文神器 —— 千笔AI
  • AI开发-python-milvus向量数据库(2-7 -milvus-精确使用模式创建collection)
  • HY-Motion 1.0企业级部署:混合云架构下多节点动作生成服务编排
  • springboot3基于Java Web的选课调查系统
  • 超级创新【物流中心选址】基于企鹅优化算法在物流中心选址的应用(Matlab代码实现)
  • 赶deadline必备! 10个AI论文写作软件测评:专科生毕业论文+格式规范全攻略
  • springboot基于Javaweb的安顺民族文化融合互动系统设计与实现
  • 2026负债人上岸实测|债务优化律所哪家靠谱?口碑协商机构权威指南+深度评测 - 代码非世界
  • 表贴式PMSM的直接转矩控制(DTC)仿真模型(Simulink仿真实现)
  • 看完就会:千笔ai写作,碾压级的AI论文写作软件
  • 采用单极表面电荷密度方法数值计算长且均匀磁化圆柱体极尖间气隙的磁场,并与类似点磁单极的近似方法进行比较(Matlab代码实现)
  • 直接上结论:专科生专属AI论文写作软件,千笔·专业论文写作工具 VS 万方智搜AI
  • 标准 Hough 变换、修正 Hough 变换和序列 Hough 变换三种典型航迹起始算法研究(Matlab代码实现)
  • 吐血推荐! AI论文平台 千笔 VS 万方智搜AI,MBA写论文必备!
  • 定稿前必看!降AIGC软件 千笔·降AI率助手 VS 云笔AI,本科生专属神器!
  • 学霸同款 9个降AIGC工具测评:专科生降AI率必备攻略
  • 实用指南:海洋漏油事件检测与分类 yolov5-GhostHGNetV2实现与训练
  • 永磁同步电机 (PMSM) NVH 分析视频精讲教程(21)
  • Cython终极性能优化指南:从Python到C++的混合编程实战 - 实践
  • Embedded Studio 发布V8.26c,再次微更新