罗马数字转数字

/ Java / 0 条评论 / 221浏览
class Solution {
public int romanToInt(String s) {
    int sum = 0;
    int preNum = getValue(s.charAt(0));
    for (int i = 1;i < s.length();i ++){
        int num = getValue(s.charAt(i));
        if (preNum < num) {
            sum -=preNum;
        }else{
            sum +=preNum;
        }
        preNum = num;
    }
    sum += preNum;
    return sum;
}
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;
    }
}

} 主要是1.选择把它的文法规则搞出来 :小数在大数的左侧为- 小数在大数右侧为+ 文法规则为此,我们只需从左到右遍历一下数组,或者哈希表就可以。