# Leetcode – 13 – Roman to Integer

Given a roman numeral, convert it to an integer.Input is guaranteed to be within the range from 1 to 3999.

Description:

In this problem we have to convert the given roman numerals to integer.

Brute Force Logic:

The logic is simple and reverse of the Leetcode – 12 – Integer to Roman

We keep adding or subtracting the corresponding decimal value based o where the roman numerals is placed.

for eg.

for IV , we compare the first and  second character and determine if the value is less than or greater than 5. In this case I is less than V so we subtract 1 from 5 which is 4.

We will have a utility method to determine the Integer value for the corresponding roman value. Code:

```public class Solution {
public int romanToInt(String s) {
int result=0;
if(s != null && !s.equals("")){
int n = s.length();
int i = 0;
while(i <= n-1) {
if(i==(n-1)){
return result + char2Number(s.charAt(i));
}
int n1 = char2Number(s.charAt(i));
int n2 = char2Number(s.charAt(i+1));
if(n1 < n2)
result = result - n1;
else
result = result + n1;
i++;
}
}
return result;
}
public int char2Number(char c){
switch(c){
case 'I':
return 1;
case 'V':
return 5;
case 'X':
return 10;
case 'L':
return 50;
case 'C':
return 100;
case 'D':
return 500;
case 'M':
return 1000;
default:
return 0;
}
}
}```

Time Complexity: O(n)

• Go through all the roman numerals – O(n)

Space Complexity: O(1)

• We will resulting integer digit one by one  – O(1)

Available Test Cases: 3999

• handle for each unique roman characters

Github:

Leetcode_13_Roman_to_Integer