Given a roman numeral, convert it to an integer.
Input is guaranteed to be within the range from 1 to 3999.
int romanToInt(string s) {
map<char, int> st;
char romans[] = {'I', 'V', 'X', 'L', 'C', 'D', 'M' };
int ints[] = {1, 5, 10, 50, 100, 500, 1000 };
for(int i = 0; i < 7; i++)
{
st[romans[i]] = ints[i];
}
int sum = 0;
int i = 7;
if(s.size() <= 0)
{
return 0;
}
sum = st[s[s.size()-1]];
for(int j = s.size() - 2; j >= 0; j--)
{
int x = st[s[j]];
if(st[s[j]] < st[s[j+1]])
{
sum = sum - x;
}
else
{
sum = sum + x;
}
}
return sum;
}
No comments:
Post a Comment