Given a roman numeral, convert it to an integer.

Input is guaranteed to be within the range from 1 to 3999.

Symbol I V X L C D M
Value 1 5 10 50 100 500 1,000
Number 4 9 40 90 400 900
Notation IV IX XL XC CD CM
    public int romanToInt(String s) {
        // Write your code here
        if(s == null || s.length() == 0){
            return 0;
        }
        int ans = 0;
        for(int i = 0; i < s.length(); i++){
            char c = s.charAt(i);
            if(c == 'M'){
                ans += 1000;
            } else if(c == 'D'){
                ans += 500;
            } else if(c == 'C'){
                ans += 100;
                if(i + 1 < s.length()){
                    //400
                    if(s.charAt(i + 1) == 'D'){
                        ans += 300;
                        i++;
                    //900    
                    } else if(s.charAt(i + 1) == 'M'){
                        ans += 800;
                        i++;
                    }
                }
            } else if(c == 'L'){
                ans += 50;
            } else if(c == 'X'){
                ans += 10;
                if(i + 1 < s.length()){
                    //40
                    if(s.charAt(i + 1) == 'L'){
                        ans += 30;
                        i++;
                    //90
                    } else if(s.charAt(i + 1) == 'C'){
                        ans += 80;
                        i++;
                    }
                }
            } else if(c == 'V'){
                ans += 5;
            } else if(c == 'I'){
                ans += 1;
                if(i + 1 < s.length()){
                    //4
                    if(s.charAt(i + 1) == 'V'){
                        ans += 3;
                        i++;
                    //9
                    } else if(s.charAt(i + 1) == 'X'){
                        ans += 8;
                        i++;
                    }
                }
            }
        }
        return ans;
    }

results matching ""

    No results matching ""