#include <iostream>
#include <string>
#include <map>
using namespace std;
class Solution {
public:
int romanToInt(string s)
{
int len = s.length();
if (len == 0)
return 0;
map <char, int> r;
r['I'] = 1;
r['V'] = 5;
r['X'] = 10;
r['L'] = 50;
r['C'] = 100;
r['D'] = 500;
r['M'] = 1000;
int i = len - 1;
int ret = r[s[i]];
--i;
while (i >= 0)
{
if (r[s[i]] < r[s[i + 1]])
ret -= r[s[i--]];
else
ret += r[s[i--]];
}
return ret;
}
};
void test_romanToInt()
{
Solution sol;
cout << "空字符 = " << sol.romanToInt("") << endl;
cout << "X = " << sol.romanToInt("X") << endl;
cout << "MCMLXXX = " << sol.romanToInt("MCMLXXX") << endl;
cout << "III = " << sol.romanToInt("III") << endl;
cout << "IV = " << sol.romanToInt("IV") << endl;
cout << "VI = " << sol.romanToInt("VI") << endl;
cout << "XIX = " << sol.romanToInt("XIX") << endl;
cout << "XX = " << sol.romanToInt("XX") << endl;
cout << "XLV = " << sol.romanToInt("XLV") << endl;
}
int main()
{
test_romanToInt();
return 0;
}