This commit is contained in:
missing 2022-12-06 08:24:31 -06:00
parent a183a6dd1a
commit 094ab63ceb
2 changed files with 44 additions and 0 deletions

43
src/days/day6.rs Normal file
View file

@ -0,0 +1,43 @@
use aoc_runner_derive::aoc;
use itertools::Itertools;
#[aoc(day6, part1, tuple_windows)]
fn part1_tuple_windows(input: &str) -> usize {
input
.char_indices()
.tuple_windows()
.find_map(|((_, a), (_, b), (_, c), (i, d))| {
if [a, b, c, d].iter().duplicates().count() == 0 {
Some(i + d.len_utf8())
} else {
None
}
})
.unwrap()
}
#[aoc(day6, part1, indexing)]
fn part1_indexing(input: &str) -> usize {
const N: usize = 4;
for i in N..=input.len() {
let s = &input[i - N..i];
if s.chars().duplicates().count() == 0 {
return i;
}
}
usize::MAX
}
#[aoc(day6, part2)]
fn part2(input: &str) -> usize {
const N: usize = 14;
for i in N..=input.len() {
let s = &input[i - N..i];
if s.chars().duplicates().count() == 0 {
return i;
}
}
usize::MAX
}

View file

@ -6,6 +6,7 @@ mod days {
mod day3;
mod day4;
mod day5;
mod day6;
}
aoc_lib! { year = 2022 }