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) {
unordered_map<string,int> mp = {{"M",1000},{"CM",900},{"D",500},
{"CD",400},{"C",100},{"XC",90},{"L",50},{"XL",40},{"X",10},
{"IX",9},{"V",5},{"IV",4},{"I",1}};
int res = 0;
for(int i=0;i<s.length();i++){
if(i+2<=s.length()+1){
auto iter = mp.find(s.substr(i,2));
if(iter!=mp.end()){
res += iter->second;
i++;
continue;
}
}
auto iter = mp.find(s.substr(i,1));
res += iter->second;
}
return res;
}
};