From c3731062a6f9afa969923906bf53eba3f6b0208b Mon Sep 17 00:00:00 2001 From: Jeremy Kaplan Date: Mon, 5 Dec 2022 21:13:04 -0800 Subject: [PATCH] They're the same function --- 2022/src/bin/day06.rs | 23 +++++++++-------------- 1 file changed, 9 insertions(+), 14 deletions(-) diff --git a/2022/src/bin/day06.rs b/2022/src/bin/day06.rs index 4582c78..0c784f0 100644 --- a/2022/src/bin/day06.rs +++ b/2022/src/bin/day06.rs @@ -9,28 +9,23 @@ fn main() { fn part1(input: &str) -> usize { let sig: Vec = input.trim().chars().collect(); + find_marker(4, sig) +} - for i in 0..(sig.len()) { - let buf = &sig[i..(i + 4)]; - if all_different(buf) { - return i + 4; - } - } - - 0 +fn part2(input: &str) -> usize { + let sig: Vec = input.trim().chars().collect(); + find_marker(14, sig) } fn all_different(c: &[char]) -> bool { c.iter().cloned().collect::>().len() == c.len() } -fn part2(input: &str) -> usize { - let sig: Vec = input.trim().chars().collect(); - - for i in 0..(sig.len()) { - let buf = &sig[i..(i + 14)]; +fn find_marker(width: usize, v: Vec) -> usize { + for i in 0..(v.len()) { + let buf = &v[i..(i + width)]; if all_different(buf) { - return i + 14; + return i + width; } }