rustgym 0.2.0

rustgym solutions
Documentation
struct Solution;

impl Solution {
    fn check_inclusion(s1: String, s2: String) -> bool {
        let mut c1: [usize; 26] = [0; 26];
        let mut c2: [usize; 26] = [0; 26];
        let n1 = s1.len();
        let n2 = s2.len();
        let s1: Vec<u8> = s1.bytes().collect();
        let s2: Vec<u8> = s2.bytes().collect();
        if n1 > n2 {
            return false;
        }
        for i in 0..n1 {
            c1[(s1[i] - b'a') as usize] += 1;
            c2[(s2[i] - b'a') as usize] += 1;
        }
        if c1 == c2 {
            return true;
        }
        for i in n1..n2 {
            c2[(s2[i] - b'a') as usize] += 1;
            c2[(s2[i - n1] - b'a') as usize] -= 1;
            if c1 == c2 {
                return true;
            }
        }
        false
    }
}

#[test]
fn test() {
    let s1 = "ab".to_string();
    let s2 = "eidbaooo".to_string();
    let res = true;
    assert_eq!(Solution::check_inclusion(s1, s2), res);
    let s1 = "ab".to_string();
    let s2 = "eidboaoo".to_string();
    let res = false;
    assert_eq!(Solution::check_inclusion(s1, s2), res);
}