leetcode/src/problem/p2595_number_of_even_and_odd_bits.rs
2025-02-20 11:21:40 +08:00

44 lines
841 B
Rust

/**
* [2595] Number of Even and Odd Bits
*/
pub struct Solution {}
// submission codes start here
impl Solution {
pub fn even_odd_bit(mut n: i32) -> Vec<i32> {
let mut is_even = true;
let mut even_count = 0;
let mut odd_count = 0;
while n > 0 {
let bit = n % 2;
if bit == 1 {
if is_even {
even_count += 1;
} else {
odd_count += 1;
}
}
is_even = !is_even;
n = n / 2;
}
vec![even_count, odd_count]
}
}
// submission codes end
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_2595() {
assert_eq!(vec![1, 2], Solution::even_odd_bit(50));
assert_eq!(vec![0, 1], Solution::even_odd_bit(2));
}
}