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)
{
int x = 0,i = 0;
while(true)
{
switch(s[i])
{
case 'M':
x += 1000;break;
case 'D':
if('M' == s[i + 1])
x -= 500;
else x += 500;
break;
case 'C':
if('M' == s[i + 1] || 'D' == s[i + 1])
x -= 100;
else x += 100;
break;
case 'L':
if('C' == s[i + 1] || 'D' == s[i + 1])
x -= 50;
else x += 50;
break;
case 'X':
if('L' == s[i + 1] || 'C' == s[i + 1])
x -= 10;
else x += 10;
break;
case 'V':
if('X' == s[i + 1] || 'L' == s[i + 1])
x -= 5;
else x += 5;
break;
case 'I':
if('X' == s[i + 1] || 'V' == s[i + 1])
x -= 1;
else x += 1;
break;
}
i++;
if(s[i] == '\0') break;
}
return x;
}
};