2023-12-01 16:46:08 +01:00

57 lines
1013 B
Go

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
}