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)
{
if(s == "") return 0;
map<char , int> mymap;
mymap['I'] = 1;
mymap['V'] = 5;
mymap['X'] = 10;
mymap['L'] = 50;
mymap['C'] = 100;
mymap['D'] = 500;
mymap['M'] = 1000;
if(s.length() == 1) return mymap[s[0]];
int i = 0;
int ans =0;
while(i < s.length() - 1)
{
if( 5 * mymap[s[i]] == mymap[s[i + 1]] || 10 * mymap[s[i]] == mymap[s[i + 1]])
{
ans -= mymap[s[i]];
}
else
{
ans += mymap[s[i]];
}
i++;
}
ans += mymap[s[s.length() - 1]];
return ans;
}
};