-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathleetcode12
More file actions
90 lines (87 loc) · 2.25 KB
/
leetcode12
File metadata and controls
90 lines (87 loc) · 2.25 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
# -*- coding:utf-8 -*-
# Roman numerals are represented by seven different symbols: I, V, X, L, C, D and M.
#
#
# Symbol Value
# I 1
# V 5
# X 10
# L 50
# C 100
# D 500
# M 1000
#
# For example, two is written as II in Roman numeral, just two one's added together. Twelve is written as, XII,
# which is simply X + II. The number twenty seven is written as XXVII, which is XX + V + II.
#
# Roman numerals are usually written largest to smallest from left to right. However, the numeral for four is not IIII.
# Instead, the number four is written as IV. Because the one is before the five we subtract it making four.
# The same principle applies to the number nine, which is written as IX. There are six instances where subtraction is used:
#
#
# I can be placed before V (5) and X (10) to make 4 and 9.
# X can be placed before L (50) and C (100) to make 40 and 90.
# C can be placed before D (500) and M (1000) to make 400 and 900.
#
#
# Given an integer, convert it to a roman numeral. Input is guaranteed to be within the range from 1 to 3999.
#
# Example 1:
#
#
# Input: 3
# Output: "III"
#
# Example 2:
#
#
# Input: 4
# Output: "IV"
#
# Example 3:
#
#
# Input: 9
# Output: "IX"
#
# Example 4:
#
#
# Input: 58
# Output: "LVIII"
# Explanation: C = 100, L = 50, XXX = 30 and III = 3.
#
#
# Example 5:
#
#
# Input: 1994
# Output: "MCMXCIV"
# Explanation: M = 1000, CM = 900, XC = 90 and IV = 4.
def convert_2_roman(inter):
dic={ 'I' : 1,
'V' : 5,
'X' : 10,
'L' : 50,
'C' : 100,
'D' : 500,
'M' :1000}
dic2={1:'I',5:'V',10:'X',50:'L',100:'C',500:'D',1000:'M'}
leng=len(str(inter))
romain=''
while leng>=1:
num=inter//10**(leng-1)
if num>=5:
if num==9:
romain+=dic2[10**(leng-1)]+dic2[10**(leng)]
else:
romain+=dic2[10**(leng-1)*5]+dic2[10**(leng-1)]*(num-5)
else:
if num==4:
romain+=dic2[10**(leng-1)]+dic2[10**(leng-1)*5]
else:
romain+=dic2[10**(leng-1)]*(num)
inter=inter-num*10**(leng-1)
leng-=1
return romain
print(convert_2_roman(1994))