一、题目原型:
罗马数字包含以下七种字符:I, V, X, L,C,D 和 M。
1
2
3
4
5
6
7
8 字符 数值
I 1
V 5
X 10
L 50
C 100
D 500
M 1000
例如, 罗马数字 2 写做 II ,即为两个并列的 1。12 写做 XII ,即为 X + II 。 27 写做 XXVII, 即为 XX + V + II 。
六种特殊字符:IV, IX, XL, XC,CD 和 CM。
1
2
3
4
5
6
7 特殊字符 数值
IV 4
IX 9
XL 40
XC 90
CD 400
CM 900
二、题目意思剖析:
将罗马数字从后往前依次筛选
1.先筛选出特殊字符,+对应的数值,然后进行剔除
2.在筛选普通字符,+对应的数值,然后进行剔除
最后得出result。
1 | 输入: "III" |
三、解题思路:
1 | // 看起来清晰,然而写起来麻烦。 |
1 | // 优化写法 |
四、小结
耗时216
毫秒,超过20.53%
的提交记录,总提交数3999
。
有其他好的方法请极速留言,非常乐意一起探讨。😄