这一题最重要的就是要建立map,来查询对应位置的大小,其次就是判断有没有小的数出现在大的数之前
这里题目给出的6种可能,除此之外也不会出现 V在X之前的这种情况,因为题目的输入都是正确的输入
记录当前的数字大小,判断后面的数字跟当前的大小比较,然后判断 + - 即可
var romanToInt = function (s) {
let map = new Map();
map.set("I", 1);
map.set("V", 5);
map.set("X", 10);
map.set("L", 50);
map.set("C", 100);
map.set("D", 500);
map.set("M", 1000);
let sum = 0;
for (let i = 0; i < s.length; ++i) {
let current = map.get(s[i]);
if (i + 1 < s.length && current < map.get(s[i + 1])) {
sum -= current;
} else {
sum += current;
}
}
return sum;
};