File tree Expand file tree Collapse file tree 2 files changed +57
-0
lines changed Expand file tree Collapse file tree 2 files changed +57
-0
lines changed Original file line number Diff line number Diff line change
1
+ let roman = {
2
+ "I" :1 ,
3
+ "V" :5 ,
4
+ "X" :10 ,
5
+ "L" :50 ,
6
+ "C" :100 ,
7
+ "D" :500 ,
8
+ "M" :1000 ,
9
+ }
10
+
11
+
12
+ /**
13
+ * @param {string } s
14
+ * @return {number }
15
+ */
16
+ var romanToInt = function ( s ) {
17
+ let arr = s . split ( "" ) , prev = Number . MAX_SAFE_INTEGER
18
+
19
+ return arr . reduce ( ( acc , i ) => {
20
+ let value = roman [ i ]
21
+ if ( value > prev )
22
+ {
23
+ acc += ( value - prev ) - prev
24
+ } else {
25
+ acc += roman [ i ]
26
+ }
27
+ prev = value
28
+ return acc
29
+ } , 0 )
30
+ } ;
Original file line number Diff line number Diff line change
1
+ /**
2
+ * @param {string } s
3
+ * @return {number }
4
+ */
5
+ var romanToInt = function ( s ) {
6
+ let key = { "I" : 1 ,
7
+ "V" : 5 ,
8
+ "X" : 10 ,
9
+ "L" : 50 ,
10
+ "C" : 100 ,
11
+ "D" : 500 ,
12
+ "M" : 1000
13
+ } , sum = 0 , last ;
14
+
15
+ s . split ( "" ) . forEach ( ( num ) => {
16
+ if ( last && key [ last ] < key [ num ] ) {
17
+ sum -= key [ last ]
18
+ sum += key [ num ] - key [ last ]
19
+ } else {
20
+ sum += key [ num ]
21
+ }
22
+ last = num
23
+ } ) ;
24
+
25
+ return sum
26
+
27
+ } ;
You can’t perform that action at this time.
0 commit comments