This commit is contained in:
MaxJa4
2023-12-06 22:53:01 +01:00
parent 64a7833fd9
commit 748aaaf82b
2 changed files with 1057 additions and 0 deletions

57
src/bin/part01.rs Normal file
View File

@@ -0,0 +1,57 @@
fn main() {
let lines = std::fs::read_to_string("src/bin/part01.txt")
.expect("Could not read file")
.lines()
.map(|line| line.parse::<String>().unwrap())
.collect::<Vec<_>>();
let mut sum = 0;
for i in 0..lines.len() {
let mut first_digit: Option<u32> = None;
let mut last_digit: Option<u32> = None;
let line = replace_string_numbers(lines[i].clone());
for c in line.chars() {
if c.is_digit(10) {
if first_digit.is_none() {
first_digit = c.to_digit(10);
} else {
last_digit = c.to_digit(10);
}
}
}
if last_digit.is_none() {
last_digit = first_digit;
}
sum += first_digit.unwrap() * 10 + last_digit.unwrap();
//println!("{}: {}{} -> {}", lines[i], first_digit.unwrap(), last_digit.unwrap(), sum);
}
println!("\nTotal sum: {}", sum);
}
fn replace_string_numbers(s: String) -> String {
let mut s = String::from(s);
s = s.replace("twone", "21");
s = s.replace("threeight", "38");
s = s.replace("nineight", "98");
s = s.replace("eightwo", "82");
s = s.replace("fiveight", "58");
s = s.replace("sevenine", "79");
s = s.replace("eighthree", "83");
s = s.replace("oneight", "18");
s = s.replace("one", "1");
s = s.replace("two", "2");
s = s.replace("three", "3");
s = s.replace("four", "4");
s = s.replace("five", "5");
s = s.replace("six", "6");
s = s.replace("seven", "7");
s = s.replace("eight", "8");
s = s.replace("nine", "9");
s
}

1000
src/bin/part01.txt Normal file

File diff suppressed because it is too large Load Diff