package romantoint import "strings" type conversion struct { roman string decimal int } var conversions = []conversion{ {"M", 1000}, {"CM", 900}, {"D", 500}, {"CD", 400}, {"C", 100}, {"XC", 90}, {"L", 50}, {"XL", 40}, {"X", 10}, {"IX", 9}, {"V", 5}, {"IV", 4}, {"I", 1}, } func romanToInt(s string) int { for _, c := range conversions { if strings.HasPrefix(s, c.roman) { return c.decimal + romanToInt(s[len(c.roman):]) } } return 0 } func RomanToInt(s string) int { return romanToInt(s) }