20250504 finished.
This commit is contained in:
		@@ -632,3 +632,5 @@ mod p2071_maximum_number_of_tasks_you_can_assign;
 | 
			
		||||
mod p838_push_dominoes;
 | 
			
		||||
 | 
			
		||||
mod p1007_minimum_domino_rotations_for_equal_row;
 | 
			
		||||
 | 
			
		||||
mod p1128_number_of_equivalent_domino_pairs;
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										58
									
								
								src/problem/p1128_number_of_equivalent_domino_pairs.rs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										58
									
								
								src/problem/p1128_number_of_equivalent_domino_pairs.rs
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,58 @@
 | 
			
		||||
/**
 | 
			
		||||
 * [1128] Number of Equivalent Domino Pairs
 | 
			
		||||
 */
 | 
			
		||||
pub struct Solution {}
 | 
			
		||||
 | 
			
		||||
// submission codes start here
 | 
			
		||||
use std::collections::HashMap;
 | 
			
		||||
 | 
			
		||||
impl Solution {
 | 
			
		||||
    pub fn num_equiv_domino_pairs(dominoes: Vec<Vec<i32>>) -> i32 {
 | 
			
		||||
        let mut map = HashMap::new();
 | 
			
		||||
        let mut result = 0;
 | 
			
		||||
 | 
			
		||||
        for card in dominoes.iter() {
 | 
			
		||||
            let sum = card[0] * 10 + card[1];
 | 
			
		||||
 | 
			
		||||
            if let Some(count) = map.get(&sum) {
 | 
			
		||||
                result += *count;
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            let entry = map.entry(sum).or_insert(0);
 | 
			
		||||
            *entry += 1;
 | 
			
		||||
 | 
			
		||||
            let reverse_sum = card[1] * 10 + card[0];
 | 
			
		||||
            if reverse_sum != sum {
 | 
			
		||||
                let entry = map.entry(card[1] * 10 + card[0]).or_insert(0);
 | 
			
		||||
                *entry += 1;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        result
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// submission codes end
 | 
			
		||||
 | 
			
		||||
#[cfg(test)]
 | 
			
		||||
mod tests {
 | 
			
		||||
    use super::*;
 | 
			
		||||
 | 
			
		||||
    #[test]
 | 
			
		||||
    fn test_1128() {
 | 
			
		||||
        assert_eq!(
 | 
			
		||||
            1,
 | 
			
		||||
            Solution::num_equiv_domino_pairs(vec![vec![1, 2], vec![2, 1], vec![3, 4], vec![5, 6]])
 | 
			
		||||
        );
 | 
			
		||||
        assert_eq!(
 | 
			
		||||
            3,
 | 
			
		||||
            Solution::num_equiv_domino_pairs(vec![
 | 
			
		||||
                vec![1, 2],
 | 
			
		||||
                vec![1, 2],
 | 
			
		||||
                vec![1, 1],
 | 
			
		||||
                vec![1, 2],
 | 
			
		||||
                vec![2, 2]
 | 
			
		||||
            ])
 | 
			
		||||
        );
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user