rustgym 0.2.0

rustgym solutions
Documentation
struct Solution;

impl Solution {
    fn can_construct(s: String, k: i32) -> bool {
        let k = k as usize;
        let n = s.len();
        if n < k {
            return false;
        }
        let mut count = vec![0; 26];
        for c in s.bytes() {
            count[(c - b'a') as usize] += 1;
        }
        let mut odd = 0;
        for v in count {
            if v % 2 != 0 {
                odd += 1;
            }
        }
        odd <= k
    }
}

#[test]
fn test() {
    let s = "annabelle".to_string();
    let k = 2;
    let res = true;
    assert_eq!(Solution::can_construct(s, k), res);
    let s = "leetcode".to_string();
    let k = 3;
    let res = false;
    assert_eq!(Solution::can_construct(s, k), res);
    let s = "true".to_string();
    let k = 4;
    let res = true;
    assert_eq!(Solution::can_construct(s, k), res);
    let s = "yzyzyzyzyzyzyzy".to_string();
    let k = 2;
    let res = true;
    assert_eq!(Solution::can_construct(s, k), res);
    let s = "cr".to_string();
    let k = 7;
    let res = false;
    assert_eq!(Solution::can_construct(s, k), res);
    let s = "aaa".to_string();
    let k = 2;
    let res = true;
    assert_eq!(Solution::can_construct(s, k), res);
}