缓存Mapping - LC12 Integer to Rom

2017-11-09  本文已影响0人  风烨

虽然是中等难度实际上不难,就是要搞清楚罗马数字的匹配方式,一般大家只看到十几就不知道后边了。重点就是1,4,5,9的进位方式。

class Solution {
    // I: 1
    // IV: 4
    // V: 5
    // IX: 9
    // X: 10
    // XL: 40
    // L: 50
    // XC: 90
    // C: 100
    // CD: 400
    // D: 500
    // CM: 900
    // M: 1000
    public static String[] dict = {"M","CM","D","CD","C","XC","L","XL","X","IX","V","IV","I"};
    public static int[] dictNums = {1000,900,500,400,100,90,50,40,10,9,5,4,1};
    
    public String intToRoman(int num) {
        StringBuilder builder = new StringBuilder();
        for(int i = 0; i < 13; i++ ) {
            while(num >= dictNums[i]) {
                num -= dictNums[i];
                builder.append(dict[i]);
            }
        }
        return builder.toString();
        
    }
}
上一篇 下一篇

猜你喜欢

热点阅读