You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

39 lines
524 B

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)
}