题目
给定一个罗马数字,将其转换成整数。输入确保在 1 到 3999 的范围内。
题解
罗马数字包含以下七种字符:
字符 |
数值 |
I |
1 |
V |
5 |
X |
10 |
L |
50 |
C |
100 |
D |
500 |
M |
1000 |
通常情况下小的罗马数字会在大的右边,但也有特殊情况。比如说“4”就表示为“IX”,而不是“IIII”。
这道题因为输入规定了都是合法的,所以就不用考虑更多的不合法输入的情况。所以可以采用比较暴力直接的解法,遍历输入的罗马数字字符串,相邻的前一个数比后一个数小就直接减去,否则就加,最后输出结果即可。
代码
class Solution {
public:
int roma