Roman To Int
Contents
题目
罗马数字使用七个不同的符号表示:I
,V
,X
,L
,C
,D
和M
。
|
|
例如,罗马数字II
表示2,就是将两个1加在一起。12被写作XII
。27被写作XXVII
,就是XX
+V
+II
。
罗马数字通常从左到右,从最大到最小。然而,数字4不是IIII
。而是IV
。因为1写到5前面得到4,相同的原理,9被表示成IX
。这里有6个使用剑法的例子🌰:
I
放在V
(5)和X
(10)前面表示4和9X
放在L
(50)和C
(100)前面表示40和90I
放在V
(500)和X
(1000)前面表示400和900
给定一个罗马数字,转换成整数。输入保证在1到3999。
Example1
|
|
难度:Easy
思路
- 使用了JS的Map,生成有序的罗马数字和整数的对应关系
- 将输入的字符串使用
String.prototype.split()
将每个字母转换成数组的元素。 - 遍历数组,从Map中拿对应关系,这里使用两个相邻元素A,B对应的数字NA和NB比较,如果
NA<NB
小,result - NA
,否则result + NB
。
代码实现
|
|