/**
* @param {string} s
* @return {number}
*/
/*
解题思路:
1.首先将对应的值和罗马数字放入map容器中
2.取出字符串中第一个罗马数字
3.去map容器中查询对应的值
4.跟第二个罗马数字进行比较
5.如果第二个罗马数字对应的值大于第一个罗马数字的值,取两个值的差值
6.第二次循环时,已经变成了第三个罗马数字和第四个罗马数字,依次类推
7.如果第二个罗马数字对应的值小于第一个罗马数字的值,直接加值
*/
var romanToInt = function(s) {
const map = {
I: 1,
V: 5,
X: 10,
L: 50,
C: 100,
D: 500,
M: 1000
}
let sum = 0;
for(i = 0; i < s.length; i++) {
const item = s[i];
let val = map[item];
if(val < map[s[i+1]]) {
// 前面小于后面 后面 - 前面
val = map[s[i+1]] - val;
i++;
}
sum += val;
}
return sum
};