题目描述:
思路:
1、将罗马数据与对应的值放在一个对象里,方便取值;
2、遍历字符串,若左边的值小于右边的值,则减,反之则加
注:遍历循环里的 if 判断,一定要加 i < s.length - 1,因为最后一个字符是不需要判断的,直接加即可。
/**
* @param {string} s
* @return {number}
*/
var romanToInt = function(s) {
let romanSignMap = {
'I': 1,
'V': 5,
'X': 10,
'L': 50,
'C': 100,
'D': 500,
'M': 1000
};
let result = 0;
for (let i = 0; i < s.length; i++) {
let temp = romanSignMap[s[i]];
if (i < s.length - 1 && temp < romanSignMap[s[i+1]]) {
result -= temp
} else {
result += temp;
}
}
return result;
};