Sunday, September 3, 2017

12. Integer to Roman

把每一位的表示都枚举出来
digit, tens digit, hundreds, thousands

78.49 %
class Solution {
    public String intToRoman(int num) {
        /*
        Symbol I V X L C D M
        Value 1 5 10 50 100 500 1,000
        Symbol IV IX XL XC CD CM
        Value 4 9 40 90 400 900
        */
        // 1->9         I, II, III, IV, V, VI, VII, VIII, IX
        // 10->90       X, XX, XXX, XL, L, LX, LXX, LXXX, XC
        // 100->900     C, CC, CCC, CD, D, DC, DCC, DCCC, CM
        // 1000->4000   M, MM, MMM
        String[][] digits = new String[4][];
        digits[0] = new String[]{"", "I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX"};
        digits[1] = new String[]{"", "X", "XX", "XXX", "XL", "L", "LX", "LXX", "LXXX", "XC"};
        digits[2] = new String[]{"", "C", "CC", "CCC", "CD", "D", "DC", "DCC", "DCCC", "CM"};
        digits[3] = new String[]{"", "M", "MM", "MMM"};
        String result = digits[3][num / 1000] + digits[2][num % 1000 / 100] + digits[1][num % 100 / 10] + digits[0][num % 10];
        return result;  
    }
}


No comments:

Post a Comment