Tap here to switch tabs
Problem
Submissions

Problem: Roman to Integer

Explore how to convert Roman numerals into their integer values by applying hash map techniques. Understand the special subtraction cases in Roman numerals and learn to implement a solution that processes valid Roman numeral strings efficiently within defined constraints.

Statement

Given a string, s, representing a Roman numeral, return the integer value of the Roman numeral.

Seven different symbols represent Roman numerals:

Symbol

Value

I

1

V

5

X

10

L

50

C

100

D

500

M

1000

So, in Roman numerals, 22 is written as II\text {II}, which is simply two 11s added together. The number1212 is written as XII\text{XII}, which is simply X+II\text{X} + \text{II}. The number 2727 is written as XXVII\text{XXVII}, which breaks down into XX+V+II\text{XX} + \text{V} + \text{II}.

Roman numerals are usually written from largest to smallest from left to right (X\text{X}) comes first, and then I\text I for 1212). However, there are six cases where a smaller numeral is placed before a larger one to indicate subtraction. For example, the number 44 is written as IV\text{IV}, because the 11 comes before the 55, so we subtract it to get 44. The remaining such cases are as follows:

  1. IV\text{IV} (55 – 11) = 44

  2. IX\text{IX} (1010 – 11) = 99

  3. XL\text{XL} (5050 – 1010) = 4040

  4. XC\text{XC} (100100 – 1010) = 9090

  5. CD\text{CD} (500500 – 100100) = 400400

  6. CM\text{CM} (10001000 – 100100) = 900900

Constraints:

  • 1≤1 \leq s.length ≤15\leq 15

  • s contains only the characters ‘I\text{I} ’, ‘V\text V ’, ‘X\text X’, ‘L\text L ’, ‘C\text C ’, ‘D\text D’, and ‘M\text M ’.

  • It is guaranteed that s is a valid Roman numeral in the range [11, 39993999].

⋮
Tap here to switch tabs
Problem
Submissions

Problem: Roman to Integer

Explore how to convert Roman numerals into their integer values by applying hash map techniques. Understand the special subtraction cases in Roman numerals and learn to implement a solution that processes valid Roman numeral strings efficiently within defined constraints.

Statement

Given a string, s, representing a Roman numeral, return the integer value of the Roman numeral.

Seven different symbols represent Roman numerals:

Symbol

Value

I

1

V

5

X

10

L

50

C

100

D

500

M

1000

So, in Roman numerals, 22 is written as II\text {II}, which is simply two 11s added together. The number1212 is written as XII\text{XII}, which is simply X+II\text{X} + \text{II}. The number 2727 is written as XXVII\text{XXVII}, which breaks down into XX+V+II\text{XX} + \text{V} + \text{II}.

Roman numerals are usually written from largest to smallest from left to right (X\text{X}) comes first, and then I\text I for 1212). However, there are six cases where a smaller numeral is placed before a larger one to indicate subtraction. For example, the number 44 is written as IV\text{IV}, because the 11 comes before the 55, so we subtract it to get 44. The remaining such cases are as follows:

  1. IV\text{IV} (55 – 11) = 44

  2. IX\text{IX} (1010 – 11) = 99

  3. XL\text{XL} (5050 – 1010) = 4040

  4. XC\text{XC} (100100 – 1010) = 9090

  5. CD\text{CD} (500500 – 100100) = 400400

  6. CM\text{CM} (10001000 – 100100) = 900900

Constraints:

  • 1≤1 \leq s.length ≤15\leq 15

  • s contains only the characters ‘I\text{I} ’, ‘V\text V ’, ‘X\text X’, ‘L\text L ’, ‘C\text C ’, ‘D\text D’, and ‘M\text M ’.

  • It is guaranteed that s is a valid Roman numeral in the range [11, 39993999].