Roman to Integer
Given a roman numeral, convert it to an integer. Input is guaranteed to be within the range from 1 to 3999.
解题思路
关于罗马数字的表示规则请参考Integer to Roman。
代码如下:
class Solution {
private:
int getInt(char roman) {
switch (roman) {
case 'I': return 1;
case 'V': return 5;
case 'X': return 10;
case 'L': return 50;
case 'C': return 100;
case 'D': return 500;
case 'M': return 1000;
default: return 0;
}
}
public:
int romanToInt(string s) {
int sum = 0;
int slen = s.length();
for (int i = 0; i < slen; ++i) {
int v = getInt(s[i]);
bool add = true;
if (i < slen - 1 && (v < getInt(s[i+1]))) {
add = false;
}
sum += (add ? v : -v);
}
return sum;
}
};