解法一:
var romanToInt = function (s) {
let res = 0;
let i = 0
for (; i < s.length; i++) {
let a = getValue(s.charAt(i))
let b = getValue(s.charAt(i+1))
if (a<b) {
res-=a
}else {
res+=a
}
}
return res;
}
function getValue(n) {
switch (n) {
case 'I': return 1;
case 'V': return 5;
case 'X': return 10;
case 'L': return 50;
case 'C': return 100;
case 'D': return 500;
case 'M': return 1000;
default: return 0;
}
}
解法二:
var romanToInt = function (s) {
const map = {
I: 1,
V: 5,
X: 10,
L: 50,
C: 100,
D: 500,
M: 1000
}
let res =0;
for (let i=0;i<s.length;i++) {
if (map[s[i]]<map[s[i+1]]) {
res-=map[s[i]]
}else {
res+=map[s[i]]
}
}
return res
};