跳转至

2595. 奇偶位数

难度:简单

题目

给你一个 整数 n

even 表示在 n 的二进制形式(下标从 0 开始)中值为 1 的偶数下标的个数。

odd 表示在 n 的二进制形式(下标从 0 开始)中值为 1 的奇数下标的个数。

请注意,在数字的二进制表示中,位下标的顺序 从右到左

返回整数数组 answer ,其中 answer = [even, odd]

示例 1:

输入:n = 50

输出:[1,2]

解释:

50 的二进制表示是 110010。

在下标 1,4,5 对应的值为 1。

示例 2:

输入:n = 2

输出:[0,1]

解释:

2 的二进制表示是 10。

只有下标 1 对应的值为 1。

提示:

  • 1 <= n <= 1000

Reference

题解

按照题目要求统计1出现的次数即可。

class Solution:
    def evenOddBit(self, n: int) -> List[int]:
        result = [0, 0]
        flag = 0
        while n:
            result[flag] += n & 1
            flag, n = ~flag, n >> 1
        return result

评论