rustgym 0.2.0

rustgym solutions
Documentation
struct Solution;

impl Solution {
    fn min_swaps_couples(mut row: Vec<i32>) -> i32 {
        let n = row.len();
        let mut res = 0;
        for i in 0..n {
            if i % 2 == 1 {
                continue;
            }
            if row[i] == row[i + 1] ^ 1 {
                continue;
            }
            res += 1;
            for j in i + 2..n {
                if row[i] == row[j] ^ 1 {
                    row.swap(i + 1, j);
                    break;
                }
            }
        }
        res
    }
}

#[test]
fn test() {
    let row = vec![0, 2, 1, 3];
    let res = 1;
    assert_eq!(Solution::min_swaps_couples(row), res);
    let row = vec![3, 2, 0, 1];
    let res = 0;
    assert_eq!(Solution::min_swaps_couples(row), res);
}