JSFiddle - React, Tailwind, and code Playground
by Steven Senkus
JavaScript
/**
* @param {string} s
* @return {number}
*/
var romanToInt = function(s) {
let int = 0;
while (str.indexOf('M') === 0) {
int += 1000;
str = str.substring(1);
}
if (str.indexOf('CM') === 0) {
int += 900;
str = str.substring(2);
}
if (str.indexOf('CD') === 0) {
int += 400;
str = str.substring(2);
}
if (str.indexOf('D') === 0) {
int += 500;
str = str.substring(1);
}
while (str.indexOf('C') === 0) {
int += 100;
str = str.substring(1);
}
if (str.indexOf('XC') === 0) {
int += 90;
str = str.substring(2);
}
if (str.indexOf('XL') === 0) {
int += 40;
str = str.substring(2);
}
if (str.indexOf('L') === 0) {
int += 50;
str = str.substring(1);
}
while (str.indexOf('X') === 0) {
int += 10;
str = str.substring(1);
}
if (str.indexOf('IX') === 0) {
int += 9;
str = str.substring(2);
}
if (str.indexOf('IV') === 0) {
int += 4;
str = str.substring(2);
}
if (str.indexOf('V') === 0) {
int += 5;
str = str.substring(1);
}
while (str.indexOf('I') === 0) {
int += 1;
str = str.substring(1);
}
return int;
};
let str;
str = 'MMMCMXCIV';
console.log(str, romanToInt(str));
str = 'MMMCDXCIV';
console.log(str, romanToInt(str));
str = 'MCCLXX';
console.log(str, romanToInt(str));