-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy path05_integer_to_roman.py
More file actions
38 lines (30 loc) · 844 Bytes
/
05_integer_to_roman.py
File metadata and controls
38 lines (30 loc) · 844 Bytes
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
class Solution:
def intToRoman(self, num: int) -> str:
value_symbols = [
(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')
]
res = []
for value, symbol in value_symbols:
if num == 0:
break
count = num // value
res.append(symbol * count)
num -= count * value
return ''.join(res)
if __name__ == "__main__":
obj = Solution()
print(obj.intToRoman(3749))
print(obj.intToRoman(58)) # Output: III
print(obj.intToRoman(1994)) # Output: LVIII