题意:Given a roman numeral, convert it to an integer.
Input is guaranteed to be within the range from 1 to 3999.
AC代码:
int romanToInt(string s){
int ret = 0;
for(int i = 0; i < s.size(); ++i){
if(i + 1 < s.size() && roman2base(s[i]) < roman2base(s[i+1])){
ret += roman2base(s[i+1]) - roman2base(s[i]);
i++;
}else{
ret += roman2base(s[i]);
}
}
return ret;
}
int roman2base(char symbol){
int value = 0;
switch(symbol){
case 'I':
value = 1;
break;
case 'V':
value = 5;
break;
case 'X':
value = 10;
break;
case 'L':
value = 50;
break;
case 'C':
value = 100;
break;
case 'D':
value = 500;
break;
case 'M':
value = 1000;
break;
}
return value;
}