* @param {string} s
* @return {number}
*/
var romanToInt = function (s) {
let romans = {
I: 1,
V: 5,
X: 10,
L: 50,
C: 100,
D: 500,
M: 1000,
};
let arr = s.split('');
let sum = 0;
for (let i = arr.length - 1; i >= 0; i--) {
if (romans[arr[i]] === romans['V']) {
if (romans[arr[i - 1]] === romans['I']) {
sum -= 1 * 2;
}
}
if (romans[arr[i]] === romans['X']) {
if (romans[arr[i - 1]] === romans['I']) {
sum -= 1 * 2;
}
}
if (romans[arr[i]] === romans['L']) {
if (romans[arr[i - 1]] === romans['X']) {
sum -= 10 * 2;
}
}
if (romans[arr[i]] === romans['C']) {
if (romans[arr[i - 1]] === romans['X']) {
sum -= 10 * 2;
}
}
if (romans[arr[i]] === romans['D']) {
if (romans[arr[i - 1]] === romans['C']) {
sum -= 100 * 2;
}
}
if (romans[arr[i]] === romans['M']) {
if (romans[arr[i - 1]] === romans['C']) {
sum -= 100 * 2;
}
}
sum += romans[arr[i]];
}
return sum;
};
function romanToInt(s) {
let sum = 0;
let next = null;
const romanArr = {
I: 1,
V: 5,
X: 10,
L: 50,
C: 100,
D: 500,
M: 1000,
};
for (let i = 0; i < s.length; i++) {
next = s[i + 1] || null;
const curr = s[i];
if (romanArr[next] > romanArr[curr]) {
sum -= romanArr[curr];
continue;
}
sum += romanArr[curr];
}
return sum;
}