From 088179a007047e20bf0856834bd0372318f1a4be Mon Sep 17 00:00:00 2001 From: Johannes Date: Sun, 2 Dec 2018 19:12:01 +0100 Subject: [PATCH] day02-2 super-fast --- src/main.rs | 1 - src/tasks/day02.rs | 24 ++++++++++++++++++++++++ 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/src/main.rs b/src/main.rs index 8fb4b01..241dfca 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,5 +1,4 @@ fn main() { // aoc_2018::tasks::day02::task1(); // aoc_2018::tasks::day02::task2(); - aoc_2018::tasks::day02::task2_linear(); } diff --git a/src/tasks/day02.rs b/src/tasks/day02.rs index 9c77332..9f656f8 100644 --- a/src/tasks/day02.rs +++ b/src/tasks/day02.rs @@ -51,6 +51,30 @@ pub fn task2() { println!("Part 2: None found!"); } +pub fn task2_linear_asterisk() { + let input = utils::read_file("input/day02.txt"); + + let mut hashes = + HashSet::::with_capacity(input.len() * input.lines().next().unwrap().len()); + + for line in input.lines() { + for i in 0..line.len() { + let string: String = line + .chars() + .enumerate() + .map(|(index, c)| if index == i { '*' } else { c }) + .collect(); + + if hashes.contains(&string) { + println!("{} is double", string); + return; + } else { + hashes.insert(string); + } + } + } +} + pub fn task2_linear() { let input = utils::read_file("input/day02.txt");