Monday, January 13, 2014

Integer to Roman LeetCode

为了简化,把所有的可能为负的元素看成一个整体。比如90, 40这些直接看成一个整体。担心会出现XIII这种情况,所以设置了一个times来看到底出现了几次。

public String intToRoman(int num) {
        int[] numbers = {1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1};
        String[] symbols ={"M", "CM", "D", "CD", "C", "XC", "L", "XL", "X", "IX", "V", "IV", "I"};
       
        String roman = "";
        int i = 0;
        while(num>0){
            int times = num/numbers[i];
            num -= times * numbers[i];
            while (times>0){
                roman += symbols[i];
                times--;
            }
            i++;
        }
        return roman;
    }

No comments:

Post a Comment