2595.奇偶位数
链接:2595.奇偶位数
难度:Easy
标签:位运算
简介:给你一个 正 整数 n 。用 even 表示在 n 的二进制形式(下标从 0 开始)中值为 1 的偶数下标的个数。用 odd 表示在 n 的二进制形式(下标从 0 开始)中值为 1 的奇数下标的个数。返回整数数组 answer ,其中 answer = [even, odd] 。
题解 1 - rust
- 编辑时间:2023-03-19
- 内存消耗:1.9MB
- 编程语言:rust
- 解法介绍:同上。
impl Solution {
    pub fn even_odd_bit(n: i32) -> Vec<i32> {
        let mut res = vec![0, 0];
        for i in 0..32 {
            if (n & (1 << i)) != 0{
                res[i % 2] += 1;
            }
        }
        res
    }
}
题解 2 - python
- 编辑时间:2023-03-19
- 执行用时:40ms
- 内存消耗:15MB
- 编程语言:python
- 解法介绍:同上。
class Solution:
    def evenOddBit(self, n: int) -> List[int]:
        even, odd = 0, 0
        for i in range(32):
            if n & (1 << i):
                if i & 1:
                    odd += 1
                else:
                    even += 1
        return [even, odd]
题解 3 - cpp
- 编辑时间:2023-03-19
- 内存消耗:7MB
- 编程语言:cpp
- 解法介绍:遍历。
class Solution {
public:
    vector<int> evenOddBit(int n) {
        int even = 0, odd = 0;
        for (int i = 0; i < 32; i++) {
            if (n & (1 << i)) {
                if (i & 1) odd++;
                else even++;
            }
        }
        return vector<int>{ even, odd };
    }
};