diff --git a/src/bin/p03.rs b/src/bin/p03.rs index 8064db2..e6b647a 100644 --- a/src/bin/p03.rs +++ b/src/bin/p03.rs @@ -1,4 +1,4 @@ -#![feature(iterator_try_collect)] +#![feature(iterator_try_collect, iter_collect_into)] use std::collections::HashSet; use std::fs; @@ -32,10 +32,11 @@ fn to_priority(c: char) -> Result { fn part1(lines: &[String]) { let mut sum: u32 = 0; + let mut left_set = HashSet::::new(); + let mut right_set = HashSet::::new(); for line in lines { let (left, right) = line.split_at(line.len() / 2); - let left_set: HashSet = left.chars().collect(); - let mut right_set = HashSet::::new(); + left.chars().collect_into(&mut left_set); let outlier = right .chars() .find(|c| { @@ -47,6 +48,9 @@ fn part1(lines: &[String]) { let priority = to_priority(outlier).unwrap(); println!("{} ({})", outlier, priority); sum += priority; + + left_set.clear(); + right_set.clear(); } println!("Sum: {}", sum);