问题:
将用string表示的罗马数字,转化成整数int;范围在1--3999
解法:
int
romanToInt(string s)
{
unordered_map<char,
int> T = { { 'I' ,
1 },
{ 'V' ,
5 },
{ 'X' ,
10 },
{ 'L' ,
50 },
{ 'C' ,
100 },
{ 'D' ,
500 },
{ 'M' ,
1000 } };
int sum = T[s.back()];
for (int i = s.length() -
2; i >= 0; --i)
{
if (T[s[i]] < T[s[i +
1]])
{
sum -= T[s[i]];
}
else
{
sum += T[s[i]];
}
}
return sum;
}