目录

13. 罗马数字转整数

easy

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

示例 1:

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

示例 2:

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

建立一个 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
}