只要明白了罗马数字的基本道理,把罗马数字转为整数其实很简单,
罗马数字有I V X L C D M 组成,分别表明1,5, 10, 50,100,500,1000
而后这几个字母在一块组成一个数.字母组合的规则有两个:javascript
其实还有挺多细节的,可是这个题目须要的只有这些,了解这些就足够了.
而后按照上面的两条逻辑,就可写出下面的代码.
除了这个题目的解法以外,还有要注意写法,若是变量为不变的,那就定义为const,假如只在此做用域起做用,就定义为let,通过我本身的实践,用这两种代替var,能够提升程序的运行速度,因此,咱们从开始就要养成良好的编程习惯.java
这种解法不是最优的,但应该是比较简单直观.因此今天发这种解法.后面可能更新别的解法编程
var romanToInt = function(s) { const arr = s.split(''); const map = { I: 1, V: 5, X: 10, L: 50, C: 100, D: 500, M: 1000, } let len = arr.length; let num = map[arr[len-1]]; for(let i = len-2; i >=0; i--) { let addNum = map[arr[i]]; if (addNum >= map[arr[i+1]]) num += addNum; else num -= addNum; } return num; };