罗马数字转数字

题目链接

解题思路

倒序遍历判断下就好了,只要前面的数比后面的小,就减去

go代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23

func romanToInt(s string) int {
num := 0
value := map[byte]int{
'I': 1,
'V': 5,
'X': 10,
'L': 50,
'C': 100,
'D': 500,
'M': 1000,
}
num = value[s[len(s)-1]]
for i := len(s) - 2; i >= 0; i-- {
if value[s[i]] < value[s[i+1]] {
num -= value[s[i]]
} else {
num += value[s[i]]
}
}
return num
}