2016, 2017, 2018, 2024 puzzle progress
This commit is contained in:
@@ -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()
|
||||
}
|
||||
Reference in New Issue
Block a user