Skip to content

Commit 8b10293

Browse files
authored
Update roman_numerals.py
1 parent dd13fe2 commit 8b10293

File tree

1 file changed

+9
-34
lines changed

1 file changed

+9
-34
lines changed

conversions/roman_numerals.py

+9-34
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,11 @@
11
ROMAN = [
2-
(1000000, "M_"),
3-
(900000, "C_M_"),
4-
(500000, "D_"),
5-
(400000, "C_D_"),
6-
(100000, "C_"),
7-
(90000, "X_C_"),
8-
(50000, "L_"),
9-
(40000, "X_L_"),
10-
(10000, "X_"),
11-
(9000, "I_X_"),
12-
(5000, "V_"),
13-
(4000, "I_V_"),
14-
(1000, "M"),
15-
(900, "CM"),
16-
(500, "D"),
17-
(400, "CD"),
18-
(100, "C"),
19-
(90, "XC"),
20-
(50, "L"),
21-
(40, "XL"),
22-
(10, "X"),
23-
(9, "IX"),
24-
(5, "V"),
25-
(4, "IV"),
26-
(1, "I"),
2+
(1000000, "M_"), (900000, "C_M_"), (500000, "D_"), (400000, "C_D_"),
3+
(100000, "C_"), (90000, "X_C_"), (50000, "L_"), (40000, "X_L_"),
4+
(10000, "X_"), (9000, "I_X_"), (5000, "V_"), (4000, "I_V_"),
5+
(1000, "M"), (900, "CM"), (500, "D"), (400, "CD"),
6+
(100, "C"), (90, "XC"), (50, "L"), (40, "XL"),
7+
(10, "X"), (9, "IX"), (5, "V"), (4, "IV"), (1, "I")
278
]
28-
29-
309
def roman_to_int(roman: str) -> int:
3110
"""
3211
Convert a Roman numeral to an integer, supporting Vinculum notation
@@ -47,15 +26,13 @@ def roman_to_int(roman: str) -> int:
4726
i, total = 0, 0
4827
while i < len(roman):
4928
# Check for 2-character symbols first (like I_ or X_)
50-
if i + 1 < len(roman) and roman[i : i + 2] in vals:
51-
total += vals[roman[i : i + 2]]
29+
if i + 1 < len(roman) and roman[i:i+2] in vals:
30+
total += vals[roman[i:i+2]]
5231
i += 2
5332
else:
5433
total += vals[roman[i]]
5534
i += 1
5635
return total
57-
58-
5936
def int_to_roman(number: int) -> str:
6037
"""
6138
Convert an integer to a Roman numeral, supporting Vinculum notation
@@ -78,9 +55,7 @@ def int_to_roman(number: int) -> str:
7855
if number == 0:
7956
break
8057
return "".join(result)
81-
82-
58+
8359
if __name__ == "__main__":
8460
import doctest
85-
8661
doctest.testmod()

0 commit comments

Comments
 (0)