You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
29 lines
538 B
29 lines
538 B
3 years ago
|
/**
|
||
|
* @param {string} s
|
||
|
* @return {number}
|
||
|
*/
|
||
|
|
||
|
var romanToInt = function(s) {
|
||
|
let numerals = {};
|
||
|
numerals['M'] = 1000;
|
||
|
numerals['D'] = 500;
|
||
|
numerals['C'] = 100;
|
||
|
numerals['L'] = 50;
|
||
|
numerals['X'] = 10;
|
||
|
numerals['V'] = 5;
|
||
|
numerals['I'] = 1;
|
||
|
|
||
|
let number = 0;
|
||
|
|
||
|
for (let i = 0; i < s.length; ++i){
|
||
|
let inRange = (i+1 < s.length);
|
||
|
if (numerals[s.charAt(i+1)] > numerals[s.charAt(i)]){
|
||
|
number -= numerals[s.charAt(i)];
|
||
|
} else {
|
||
|
number += numerals[s.charAt(i)];
|
||
|
}
|
||
|
}
|
||
|
|
||
|
return number;
|
||
|
};
|