1. 字符 数值
  2. I 1
  3. V 5
  4. X 10
  5. L 50
  6. C 100
  7. D 500
  8. M 1000
  9. 例如, 罗马数字 2 写做 II ,即为两个并列的 112 写做 XII ,即为 X + II 27 写做 XXVII, 即为 XX + V + II
  10. 给定一个罗马数字,将其转换成整数。输入确保在 1 3999 的范围内。
  1. 输入: "III"
  2. 输出: 3
  3. 输入: "IV"
  4. 输出: 4
  5. 输入: "IX"
  6. 输出: 9
  7. 输入: "LVIII"
  8. 输出: 58
  9. 解释: L = 50, V= 5, III = 3.
  10. 输入: "MCMXCIV"
  11. 输出: 1994
  12. 解释: M = 1000, CM = 900, XC = 90, IV = 4.

方法

  1. var romanToInt = function(s) {
  2. let obj = {
  3. 'I': 1,
  4. 'V': 5,
  5. 'X': 10,
  6. 'L': 50,
  7. 'C': 100,
  8. 'D': 500,
  9. 'M': 1000
  10. }
  11. let num = 0;
  12. for(let i=0, len=s.length; i<len; i++) {
  13. let left = s[i],
  14. right = s[i+1],
  15. newNum = obj[left]<obj[right]? 0 - obj[left]: obj[left];
  16. num = newNum+num
  17. }
  18. return num;
  19. };