13. 罗马数字转整数
easy
给定一个罗马数字,将其转换成整数。
示例 1:
示例 2:
解
建立一个 HashMap 来映射符号和值,然后对字符串从左到右来,如果当前字符代表的值不小于其右边,就加上该值;否则就减去该值。以此类推
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| func romanToInt(s string) int {
roman := map[string]int{
"I": 1,
"V": 5,
"X": 10,
"L": 50,
"C": 100,
"D": 500,
"M": 1000,
}
result := 0
for i := 0; i < len(s); i++ {
if i+1 < len(s) && roman[string(s[i])] < roman[string(s[i+1])] {
result -= roman[string(s[i])]
} else {
result += roman[string(s[i])]
}
}
return result
}
|