Refactor parseSpelledDigit to parseDigit and handle both spelled digits and regular digits
This commit is contained in:
parent
3cfd98c2f5
commit
da6a330f7a
1 changed files with 20 additions and 16 deletions
|
@ -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)
|
||||
|
|
Loading…
Add table
Reference in a new issue