lc-go/solutions/0/q13/solution.go

38 lines
526 B
Go

// Package q13 implements a solution for https://leetcode.com/problems/roman-to-integer/
package q13
func lookup(b byte) int {
switch b {
case 'I':
return 1
case 'V':
return 5
case 'X':
return 10
case 'L':
return 50
case 'C':
return 100
case 'D':
return 500
case 'M':
return 1000
}
return 0
}
func romanToInt(s string) int {
num := 0
prev := 0
for i := range len(s) {
cur := lookup(s[i])
num += cur
if prev < cur {
num -= prev + prev
}
prev = cur
}
return num
}
var _ = romanToInt