13. 罗马数字转整数

class Solution {

public int romanToInt(String s) {
    int result = 0;
    int preValue = getValue(s.charAt(0));
    int value = 0;
    for(int i = 1;i < s.length();i++){
        value = getValue(s.charAt(i));
        //只对前一个数做加减运算
        if(value > preValue){
            result -= preValue;
        }else{
            result += preValue;
        }            
        preValue = value;
    }
    //只对前一个数做加减运算
    result += preValue;
    return result;
}

private int getValue(char ch){
    switch(ch){
        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;

    }
}

}

上一篇:SharePoint企业解决方案


下一篇:7. 整数反转