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