Given a roman numeral, convert it to an integer.
Input is guaranteed to be within the range from 1 to 3999.
题意:讲罗马数字转换成阿拉伯数字思路:了解罗马数字的构造后,从后往前处理就行了
class Solution {
public:
int romanToInt(string s) {
if (s.size() == 0) return 0;
map<char, int> mp;
mp['I'] = 1;
mp['V'] = 5;
mp['X'] = 10;
mp['L'] = 50;
mp['C'] = 100;
mp['D'] = 500;
mp['M'] = 1000;
int len = s.size();
int sum = mp[s[len-1]];
for (int i = len-2; i >= 0; i--) {
if (mp[s[i]] < mp[s[i+1]])
sum -= mp[s[i]];
else sum += mp[s[i]];
}
return sum;
}
};