跳到主要内容

13. 罗马数字转整数

easy

给定一个罗马数字,将其转换成整数。

示例 1:

输入: s = "III"
输出: 3

示例 2:

输入: s = "IV"
输出: 4

建立一个 HashMap 来映射符号和值,然后对字符串从左到右来,如果当前字符代表的值不小于其右边,就加上该值;否则就减去该值。以此类推

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
}