rustgym 0.2.0

rustgym solutions
Documentation
struct Solution;

use std::collections::HashMap;

impl Solution {
    fn num_equiv_domino_pairs(dominoes: Vec<Vec<i32>>) -> i32 {
        let mut hs: HashMap<Vec<i32>, i32> = HashMap::new();
        let mut sum = 0;
        for d in dominoes {
            let a = d[0];
            let b = d[1];
            if a < b {
                *hs.entry(vec![a, b]).or_default() += 1;
            } else {
                *hs.entry(vec![b, a]).or_default() += 1;
            }
        }
        for v in hs.values() {
            sum += v * (v - 1) / 2;
        }
        sum
    }
}

#[test]
fn test() {
    let dominoes: Vec<Vec<i32>> = vec_vec_i32![[1, 2], [2, 1], [3, 4], [5, 6]];
    assert_eq!(Solution::num_equiv_domino_pairs(dominoes), 1);
}