013 · Roman to Integer
algorithm
Problem
罗马数字包含以下七个符号:
| Symbol | Value |
|---|---|
I |
1 |
V |
5 |
X |
10 |
L |
50 |
C |
100 |
D |
500 |
M |
1000 |
通常情况下,罗马数字从左到右按从大到小排列,表示把这些符号的值相加。
例如:
II表示2XII表示12XXVII表示27
但有些数字会使用减法形式。较小的符号放在较大的符号左边时,表示需要减去这个较小的值。
常见的减法形式包括:
I可以放在V和X前面,表示4和9X可以放在L和C前面,表示40和90C可以放在D和M前面,表示400和900
给定一个罗马数字字符串 s,请将它转换成对应的整数。
Examples
示例 1
Input: s = "III"
Output: 3
解释:III = 1 + 1 + 1 = 3。
示例 2
Input: s = "LVIII"
Output: 58
解释:L = 50,V = 5,III = 3,所以结果是 58。
示例 3
Input: s = "MCMXCIV"
Output: 1994
解释:M = 1000,CM = 900,XC = 90,IV = 4,所以结果是 1994。
Constraints
- \(1 \leq\)
s.length\(\leq 15\) s只包含字符I,V,X,L,C,D,Ms是一个合法的罗马数字s表示的整数范围是 \(1\) 到 \(3999\)
Link
→ Solution