题目
解法:
写个while循环,单独处理特殊情况即可
class Solution {
public:
int romanToInt(string s) {
unordered_map<char,int> mapping{
{'I', 1},
{'V', 5},
{'X', 10},
{'L', 50},
{'C', 100},
{'D', 500},
{'M', 1000}
};
int res = 0;
int i = 0;
while(i<s.size()){
if(i+1 < s.size() && mapping[s[i]] < mapping[s[i+1]]){
res += mapping[s[i+1]] - mapping[s[i]];
i += 2;
}else{
res += mapping[s[i]];
i++;
}
}
return res;
}
};