leetcode電源ボタン12ローマ数字の整数

次の7つを含むローマ数字文字:I、V、X、L、C、D及びM.

数字
I. 1
V. 5
X-10
L 50
C 100
D 500
M 1000は
、例えば、2 IIローマ数字として書き込まれ、すなわち1.12、すなわちX + II、二つの平行XIIのように書きます。図27は、XXVII、即ちXX + V + IIのように書きます。

一般的に、大量に右にローマ数字の数が少ないです。しかし、例外もある、例えば、4 IIIIを書きますが、IVはありません。左番号5番号1において、多数の数が4を得た少ない数5で表される値に等しいです。同様に、数9は、IXで表されます。この特別なルールは以下の6つのケースにのみ適用されます。

私は、左V(5)とX(10)上にあってもよく、及び4,9を表現します。
X Lは、左(50)及びC(100)上に配置することができ、そして40と90が示されています。 
Cは、400と900表すために、左側にD(500)とM(1000)上に配置することができます。
整数を考えると、ローマ数字に変換します。入力は3999から1の範囲にあることを保証します。

例1:

入力:3
出力: "III"
例2:

入力:4
出力: "IV"
の例3:

入力:9
出力: "IX"
例4:

入力:58
出力: "LVIII"
説明:L = 50、V = 5 、III = 3
実施例5:

入力:1994
出力: "MCMXCIV"
説明:M = 1000、CM = 900 、XC = 90、IV = 4。

主に店舗情報にPythonの辞書を使用

class Solution:
    def intToRoman(self, num: int) -> str:
        hashmap = {1000: 'M', 900: 'CM', 500: 'D', 400: 'CD', 
    	100: 'C', 90: 'XC', 50: 'L', 40: 'XL', 10: 'X', 
    	9: 'IX', 5: 'V', 4: 'IV', 1: 'I'}
        s = ""
        for k in hashmap:
            if (num // k) != 0:
                count = num // k
                num %= k
                s += hashmap[k] * count
        return s

 

公開された302元の記事 ウォンの賞賛161 ビュー490 000 +

おすすめ

転載: blog.csdn.net/qq_32146369/article/details/104104711