12. 整数转罗马数字

Posted lgz0921

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了12. 整数转罗马数字相关的知识,希望对你有一定的参考价值。

题目链接:https://leetcode-cn.com/problems/integer-to-roman/

思路:把特殊和正常的符号以及他们对应的值全部放在一个map中(看代码)。然后循环从大到小开始减(看代码),同时减的过程中记录一下结果,这样就可以啦~~~

上代码:

class Solution {
    fun intToRoman(num: Int): String {
        var value = num;
        val valueToChar = mapOf(1 to "I", 4 to "IV", 5 to "V", 9 to "IX", 10 to "X", 40 to "XL", 50 to "L", 90 to "XC", 100 to "C", 400 to "CD", 500 to "D", 900 to "CM", 1000 to "M")
        val array = arrayOf(1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1)
        val result = StringBuilder()
        for (item in array) {
            while (value >= item) {
                result.append(valueToChar[item])
                value -= item
            }
            if (value == 0) {
                break
            }
        }
        return result.toString()
    }
}

 

以上是关于12. 整数转罗马数字的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode 12. 整数转罗马数字

Leetcode12. 整数转罗马数字(贪心)

leetcode 12.整数转罗马数字

leetcode 12.整数转罗马数字

leetcode 12.整数转罗马数字

leetcode 12.整数转罗马数字