Leetcode-012-整数转罗马数字

贪心算法,表达的种类是有穷尽的,从大到小进行贪心就好。

class Solution {
    public String intToRoman(int num) {
        
        int[] nums= new int[]{1000,900,500,400,100,90,50,40,10,9,5,4,1};
        String[] roman= new String[]{"M","CM","D","CD","C","XC","L","XL","X","IX","V","IV","I"};

        int index = 0;
        StringBuilder demo = new StringBuilder();
        while(index<13){
            while(num>=nums[index]){
                demo.append(roman[index]);
                num -= nums[index];
            }
            index++;
        }
        return demo.toString();
    }
}
class Solution:
    def intToRoman(self, num: int) -> str:
        nums = [1000,900,500,400,100,90,50,40,10,9,5,4,1]
        roman= ["M","CM","D","CD","C","XC","L","XL","X","IX","V","IV","I"]

        result = ""
        idx = 0
        while idx<13:
            while num>=nums[idx]:
                result += roman[idx]
                num -= nums[idx]
            idx +=1
        return result

猜你喜欢

转载自www.cnblogs.com/huangzengrui/p/12408882.html