2016, 2017, 2018, 2024 puzzle progress

This commit is contained in:
2025-10-08 13:17:46 -04:00
parent af075edb24
commit e1bdbe21c8
21 changed files with 3658 additions and 43 deletions
+34
View File
@@ -56,3 +56,37 @@ pub fn sum_of_vec(to_add: &Vec<u32>) -> u32 {
}
working
}
pub fn merge_ranges(range_1: (u32, u32), range_2: (u32, u32)) -> Option<(u32, u32)> {
let (r1_start, r1_end) = (range_1.0.min(range_1.1), range_1.0.max(range_1.1));
let (r2_start, r2_end) = (range_2.0.min(range_2.1), range_2.0.max(range_2.1));
if r1_start <= r2_end && r2_start <= r1_end {
Some((r1_start.min(r2_start), r1_end.max(r2_end)))
} else {
None // no overlap
}
}
pub fn can_merge_ranges(range_1: (u32, u32), range_2: (u32, u32)) -> bool {
let (r1start, r1end) = range_1;
let (r2start, r2end) = range_2;
let (r1start, r1end) = (r1start.min(r1end), r1start.max(r1end));
let (r2start, r2end) = (r2start.min(r2end), r2start.max(r2end));
r1start <= r2end && r2start <= r1end
}
pub fn format_with_commas(n: u32) -> String {
let s = n.to_string();
let mut result = String::new();
let chars: Vec<_> = s.chars().collect();
for (i, c) in chars.iter().rev().enumerate() {
if i > 0 && i % 3 == 0 {
result.push(',');
}
result.push(*c);
}
result.chars().rev().collect()
}