Day 5 part 2

This commit is contained in:
Federico Toluzzo 2025-10-14 20:32:38 +02:00
parent 6323a9b860
commit 3f4276701d

View file

@ -35,6 +35,50 @@ fn part_1(input: String) -> i32 {
count
}
fn part_2(input: String) -> i32 {
let mut count = 0;
for line in input.lines() {
let mut cursor = Vec::from(['-', '-']);
let mut duplicate = 0;
let mut gap = false;
for c in line.chars() {
cursor[0] = cursor[1];
cursor[1] = c;
let mut cursor2 = Vec::from(['-', '-']);
let mut last_duplicate = false;
for c2 in line.chars() {
cursor2[0] = cursor2[1];
cursor2[1] = c2;
if(cursor == cursor2 && !last_duplicate) {
duplicate += 1;
last_duplicate = true;
continue;
}
last_duplicate = false;
}
}
cursor = Vec::from(['-', '-', '-']);
for c in line.chars() {
cursor[0] = cursor[1];
cursor[1] = cursor[2];
cursor[2] = c;
if cursor[0] == cursor[2] {
gap = true;
break;
}
}
if (duplicate >= line.len() + 1) && gap {
count += 1;
}
}
count
}
pub fn print_answer() {
println!("Day\t5\tpart\t1\tanswer:\t{}", part_1(fs::read_to_string("src/AoC2015/fifth2015.txt").unwrap()));
println!("Day\t5\tpart\t1\tanswer:\t{}", part_2(fs::read_to_string("src/AoC2015/fifth2015.txt").unwrap()));
}