http://blog.csdn.net/beiyetengqing/article/details/8458778
这种方法更好一些
public class Solution {
public int getValue(char c){
switch(c){
case 'I': return 1;
case 'V': return 5;
case 'X': return 10;
case 'L': return 50;
case 'C': return 100;
case 'D': return 500;
case 'M': return 1000;
default: return 0;
}
}
public int romanToInt(String s) {
int pre = getValue(s.charAt(0));
int res = pre;
for(int i = 1; i < s.length(); i++){
int cur = getValue(s.charAt(i));
if(pre < cur){
res = res - 2 * pre;
}
res += cur;
pre = cur;
}
return res;
}
}
参见 罗马数字列表, 小单位的数字在大单位数字前面时只有一个, 如IV 表示4, 不会有 IIV这种情况,