给定一个罗马数字,将其转换成整数。
返回的结果要求在1到3999的范围内。
样例
IV
-> 4
XII
-> 12
XXI
-> 21
XCIX
-> 99
class Solution {
public:
int romanToInt(string& s) {
unordered_map<char,int>m;
m['I']=1;
m['V']=5;
m['X']=10;
m['L']=50;
m['C']=100;
m['D']=500;
m['M']=1000;
int res=0;
int n=s.size();
if(n==0) return 0;
for(int i=0;i<n;i++){
if(i==n-1||m[s[i]]>=m[s[i+1]]) res+=m[s[i]];
else res-=m[s[i]];
}
return res;
}
};