package day01 import ( "strconv" "strings" "unicode" utils "git.anthonygueguen.fr/g3po/aoc2023/internal" ) var wordNum = map[string]string{ "one": "o1e", "two": "t2o", "three": "t3e", "four": "f4r", "five": "f5e", "six": "s6x", "seven": "s7n", "eight": "e8t", "nine": "n9e", } func GetDigits(content []string) []int { var digits []int for _, line := range content { d_str := "" for _, c := range line { if unicode.IsDigit(c) { d_str = d_str + string(c) break } } for i := len(line) - 1; i >= 0; i-- { if unicode.IsDigit(rune(line[i])) { d_str = d_str + string(line[i]) break } } utils.Must[int](strconv.Atoi(d_str)) digits = append(digits, utils.Must[int](strconv.Atoi(d_str))) } return digits } func WordToNum(content []string) []string { var rContent []string for _, line := range content { str := line for k, v := range wordNum { str = strings.ReplaceAll(str, k, v) } rContent = append(rContent, str) } return rContent }