Part 01
This commit is contained in:
57
src/bin/part01.rs
Normal file
57
src/bin/part01.rs
Normal 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
1000
src/bin/part01.txt
Normal file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user