From da6a330f7a3023656254f1874799803ba460492e Mon Sep 17 00:00:00 2001 From: Luna Komorebi Date: Mon, 18 Dec 2023 15:57:19 +0100 Subject: [PATCH] Refactor parseSpelledDigit to parseDigit and handle both spelled digits and regular digits --- day1/part2.go | 36 ++++++++++++++++++++---------------- 1 file changed, 20 insertions(+), 16 deletions(-) diff --git a/day1/part2.go b/day1/part2.go index 472fde2..456cb2f 100644 --- a/day1/part2.go +++ b/day1/part2.go @@ -1,6 +1,7 @@ package main import ( + "errors" "fmt" "io" "log" @@ -20,7 +21,7 @@ func readInput() string { return str } -func parseSpelledDigit(input string) string { +func parseDigit(input string) (string, error) { digits := map[string]string{ "one": "1", "two": "2", @@ -31,21 +32,30 @@ func parseSpelledDigit(input string) string { "seven": "7", "eight": "8", "nine": "9", + "1": "1", + "2": "2", + "3": "3", + "4": "4", + "5": "5", + "6": "6", + "7": "7", + "8": "8", + "9": "9", } i, ok := digits[input] if ok == false { - return "-1" + return "", errors.New("No spelled digit") } - return i + return i, nil } -func addSDStrings(input1 string, input2 string) string { - num1 := parseSpelledDigit(input1) - if num1 == "-1" { +func addDStrings(input1 string, input2 string) string { + num1, err := parseDigit(input1) + if err != nil { num1 = input1 } - num2 := parseSpelledDigit(input2) - if num2 == "-1" { + num2, err := parseDigit(input2) + if err != nil { num2 = input2 } num_str := num1 + num2 @@ -64,16 +74,10 @@ func main() { } first := matches[0] last := matches[matches_len-1] - num_str := first + " " + last + num_str := addDStrings(first, last) num, err := strconv.Atoi(num_str) if err != nil { - num_str = addSDStrings(first, last) - num, err = strconv.Atoi(num_str) - if err != nil { - log.Fatalln(err) - continue - } - + log.Fatalln(err) } answer = answer + num fmt.Println(l, first, last, num)