12. 整数转罗马数字

 

 因为最大的数字罗马字符在左边,所以可以贪心策略:

class Solution {
    int[] values = {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"};
    public String intToRoman(int num) {
        StringBuffer sb = new StringBuffer();
        for(int i=0;i<values.length;++i){
            int val = values[i];
            String s = symbols[i];
            while(num >= val){
                sb.append(s);
                num = num - val;
            }
            if(num == 0)
                break;
        }
    return sb.toString();
    }
}

 

posted @ 2023-06-01 23:08  Lee最好好好吃饭  阅读(8)  评论(0)    收藏  举报