LeetCode:2595.奇偶位数

[复制链接]
发表于 2025-10-26 20:16:18 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
  1. 给你一个 正 整数 n 。
  2. 用 even 表示在 n 的二进制形式(下标从 0 开始)中值为 1 的偶数下标的个数。
  3. 用 odd 表示在 n 的二进制形式(下标从 0 开始)中值为 1 的奇数下标的个数。
  4. 请注意,在数字的二进制表示中,位下标的顺序 从右到左。
  5. 返回整数数组 answer ,其中 answer = [even, odd] 。
  6.         示例 1:
  7.        
  8.         输入:n = 50
  9.        
  10.         输出:[1,2]
  11.        
  12.         解释:
  13.        
  14.         50 的二进制表示是 110010。
  15.        
  16.         在下标 1,4,5 对应的值为 1。
  17.        
  18.         示例 2:
  19.        
  20.         输入:n = 2
  21.        
  22.         输出:[0,1]
  23.        
  24. 解释:
  25. 2 的二进制表示是 10。
  26. 只有下标 1 对应的值为 1。
  27. 提示:
  28. 1 <= n <= 1000
复制代码
方法一:遍历二进制数
把n当成一个二进制数来遍历。遍历的次序是从低位到高位。具体来说,通过n & 1取二进制的最低位,然后把n右移一位,继承盘算n & 1,如允许以取到次低位。云云循环,直到n=0为止。在遍历的过程中,统计奇偶下标比特位中的1的个数。
  1. class Solution:
  2.     def evenOddBit(self, n: int)
复制代码
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表