Given a roman numeral, convert it to an integer.
Input is guaranteed to be within the range from 1 to 3999.
罗马数字规则不是很懂,直接参考了答案。
从后往前对字符进行判断累加
public class Solution {
public int romanToInt(String s) {
int sum=0;
for(int i=s.length()-1; i>=0; i--){
switch(s.charAt(i)){
case 'I':
sum += (sum>=5?-1:1);
break;
case 'V':
sum += 5;break;
case 'X':
sum += 10*(sum>=50?-1:1);
break;
case 'L':
sum += 50;break;
case 'C':
sum += 100*(sum>=500?-1:1);
break;
case 'D':
sum += 500;break;
case 'M':
sum += 1000;break;
}
}
return sum;
}
}