LeetCode 题目十三

我的解答

public int romanToInt(String s) {
        
        char[] cs = s.toCharArray();
        
        int arabicINumber = 1;
        int arabicVNumber = 5;
        int arabicXNumber = 10;
        int arabicLNumber = 50;
        int arabicCNumber = 100;
        int arabicDNumber = 500;
        int arabicMNumber = 1000;
        
        int res = 0;
        
        for (int i = 0; i < cs.length; i++) {
            
            switch (cs[i]) {
            
            case 'I':
                if (i == cs.length - 1){
                    res = res + arabicINumber;
                } else {
                    if (cs[i + 1] == 'V'){
                        res = res + (arabicVNumber - arabicINumber);
                        i++;
                        continue;
                    }
                    if (cs[i + 1] == 'X'){
                        res = res + (arabicXNumber - arabicINumber);
                        i++;
                        continue;
                    }
                    res = res + arabicINumber;
                }
                continue;
                
            case 'X':
                if (i == cs.length - 1){
                    res = res + (arabicXNumber);
                } else {
                    if (cs[i + 1] == 'L'){
                        res = res + (arabicLNumber - arabicXNumber);
                        i++;
                        continue;
                    }
                    if (cs[i + 1] == 'C'){
                        res = res + (arabicCNumber - arabicXNumber);
                        i++;
                        continue;
                    }
                }
                continue;
                
            case 'C':
                if (i == cs.length - 1){
                    res = res + (arabicCNumber);
                } else {
                    if (cs[i + 1] == 'D'){
                        res = res + (arabicDNumber - arabicCNumber);
                        i++;
                        continue;
                    }
                    if (cs[i + 1] == 'M'){
                        res = res + (arabicMNumber - arabicCNumber);
                        i++;
                        continue;
                    }
                }
                continue;
                
            case 'V':
                res = res + (arabicVNumber);
                continue;
                
            case 'L':
                res = res + (arabicLNumber);
                continue; 
                
            case 'D':
                res = res + (arabicDNumber);
                continue; 
                
            case 'M':
                res = res + (arabicMNumber);
                continue; 

            }
        }
        
        return res;
        
    }
原文地址:https://www.cnblogs.com/zhangqian27/p/10969081.html