From 4beec9475d6489f94a6b10c5d1c247858ce7554d Mon Sep 17 00:00:00 2001 From: dece Date: Sun, 7 Nov 2021 20:43:52 +0100 Subject: [PATCH] 2015 day 10 --- 2015/src/bin/day10.rs | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 2015/src/bin/day10.rs diff --git a/2015/src/bin/day10.rs b/2015/src/bin/day10.rs new file mode 100644 index 0000000..82ff77e --- /dev/null +++ b/2015/src/bin/day10.rs @@ -0,0 +1,36 @@ +use aoc::input; + +fn main() { + let mut v = input::read_chars(); + + // Part 1 + for _ in 0..40 { + v = step(&v); + } + println!("Length after 40 steps: {}", v.len()); + + // Part 2 + for _ in 0..10 { + v = step(&v); + } + println!("Length after 50 steps: {}", v.len()); +} + +fn step(s: &str) -> String { + let mut count = 1; + let mut pc = ' '; + let mut result = String::new(); + for c in s.chars() { + if c == pc { + count += 1; + } else if pc != ' ' { + result.push_str(&count.to_string()); + result.push(pc); + count = 1; + } + pc = c; + } + result.push_str(&count.to_string()); + result.push(pc); + result +}