Skip to content

Commit d5c52b1

Browse files
committed
34-13-Roman-to-Integer
1 parent 67dd985 commit d5c52b1

File tree

1 file changed

+40
-0
lines changed

1 file changed

+40
-0
lines changed

34-13-Roman-to-Integer.js

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
var romanToInt = function (s) {
2+
let map = new Map();
3+
4+
map.set("I", 1);
5+
map.set("V", 5);
6+
map.set("X", 10);
7+
map.set("L", 50);
8+
map.set("C", 100);
9+
map.set("D", 500);
10+
map.set("M", 1000);
11+
map.set("IV", 4);
12+
map.set("IX", 9);
13+
map.set("XL", 40);
14+
map.set("XC", 90);
15+
map.set("CD", 400);
16+
map.set("CM", 900);
17+
18+
let intVal = 0;
19+
20+
for (let i = 0; i < s.length; ) {
21+
if (map.has(s[i] + s[i + 1]) && i + 1 < s.length) {
22+
intVal += map.get(s[i] + s[i + 1]);
23+
i += 2;
24+
} else {
25+
intVal += map.get(s[i]);
26+
i++;
27+
}
28+
}
29+
30+
return intVal;
31+
};
32+
33+
console.log(romanToInt("III"));
34+
// 3 III = 3.
35+
36+
console.log(romanToInt("LVIII"));
37+
// 58 L = 50, V= 5, III = 3.
38+
39+
console.log(romanToInt("MCMXCIV"));
40+
//1994 M = 1000, CM = 900, XC = 90, IV = 4.

0 commit comments

Comments
 (0)