diff --git a/exercises/11_hashmaps/hashmaps2.rs b/exercises/11_hashmaps/hashmaps2.rs index a592569..b8a7eac 100644 --- a/exercises/11_hashmaps/hashmaps2.rs +++ b/exercises/11_hashmaps/hashmaps2.rs @@ -14,8 +14,6 @@ // Execute `rustlings hint hashmaps2` or use the `hint` watch subcommand for a // hint. -// I AM NOT DONE - use std::collections::HashMap; #[derive(Hash, PartialEq, Eq)] @@ -40,6 +38,10 @@ fn fruit_basket(basket: &mut HashMap) { // TODO: Insert new fruits if they are not already present in the // basket. Note that you are not allowed to put any type of fruit that's // already present! + + if !basket.contains_key(&fruit) { + basket.insert(fruit, 100); + } } } diff --git a/exercises/11_hashmaps/hashmaps3.rs b/exercises/11_hashmaps/hashmaps3.rs index 8d9236d..0a75ee5 100644 --- a/exercises/11_hashmaps/hashmaps3.rs +++ b/exercises/11_hashmaps/hashmaps3.rs @@ -40,6 +40,27 @@ fn build_scores_table(results: String) -> HashMap { // will be the number of goals conceded by team_2, and similarly // goals scored by team_2 will be the number of goals conceded by // team_1. + for team in vec![&team_1_name, &team_2_name] { + if !scores.contains_key(team) { + let t = Team { + goals_scored: 0, + goals_conceded: 0, + }; + + scores.insert(team.to_string(), t); + } + } + + println!("{}", &team_1_name); + println!("{}", &team_2_name); + + let mut t = scores.get_mut(&team_1_name).unwrap(); + t.goals_scored += team_1_score; + t.goals_conceded += team_2_score; + + let mut t = scores.get_mut(&team_2_name).unwrap(); + t.goals_scored += team_2_score; + t.goals_conceded += team_1_score; } scores }