more progress
This commit is contained in:
+16
-21
@@ -10,25 +10,19 @@
|
||||
use core::read_data;
|
||||
|
||||
fn circular_digit_sum(input: &str) -> u32 {
|
||||
let all_chars: Vec<_> = input.chars().collect();
|
||||
let mut running_total = 0;
|
||||
let mut first_char = ' ';
|
||||
let mut last_char = ' ';
|
||||
let input_length = input.len();
|
||||
for (index, char) in input.chars().enumerate() {
|
||||
if index == 0 {
|
||||
first_char = char;
|
||||
}
|
||||
if index == input_length - 1 {
|
||||
if char == first_char {
|
||||
let num_val = char.to_digit(10).unwrap();
|
||||
running_total += num_val;
|
||||
let half_way = input_length / 2;
|
||||
println!("TOTAL LENGTH FOR INPUT: {input_length} / {half_way}");
|
||||
for (index, char) in all_chars.clone().into_iter().enumerate() {
|
||||
if index < half_way {
|
||||
if all_chars[index] == all_chars[index + half_way] {
|
||||
let val = all_chars[index].to_string().parse::<u32>().unwrap();
|
||||
running_total += (val * 2);
|
||||
}
|
||||
println!("Checking {index} against {}", index + half_way);
|
||||
}
|
||||
if char == last_char {
|
||||
let num_val = char.to_digit(10).unwrap();
|
||||
running_total += num_val;
|
||||
}
|
||||
last_char = char;
|
||||
}
|
||||
|
||||
running_total
|
||||
@@ -38,11 +32,12 @@ fn circular_digit_sum(input: &str) -> u32 {
|
||||
fn main() {
|
||||
let binding = read_data("2017_01_data.txt");
|
||||
let params = vec![
|
||||
("1122", 3),
|
||||
("1111", 4),
|
||||
("1234", 0),
|
||||
("91212129", 9),
|
||||
(&*binding, 1031)
|
||||
("1212", 6),
|
||||
("1221", 0),
|
||||
("123425", 4),
|
||||
("123123", 12),
|
||||
("12131415", 4),
|
||||
(&*binding, 1080)
|
||||
];
|
||||
|
||||
for (param, expected) in params {
|
||||
@@ -52,4 +47,4 @@ fn main() {
|
||||
println!("success!");
|
||||
}
|
||||
}
|
||||
// 1031
|
||||
// 1080
|
||||
|
||||
Reference in New Issue
Block a user