Roman to Integer
Symbol Value
I 1
V 5
X 10
L 50
C 100
D 500
M 1000Input: "III"
Output: 3Last updated
Symbol Value
I 1
V 5
X 10
L 50
C 100
D 500
M 1000Input: "III"
Output: 3Last updated
Input: "IV"
Output: 4Input: "IX"
Output: 9Input: "LVIII"
Output: 58
Explanation: L = 50, V= 5, III = 3.Input: "MCMXCIV"
Output: 1994
Explanation: M = 1000, CM = 900, XC = 90 and IV = 4.class Solution {
public int romanToInt(String s) {
if(s == null || s.length() == 0)
return -1;
char[] charArr = s.toCharArray();
int res = toNum(charArr[0]);
for(int i =1 ; i < charArr.length;i++){
res += toNum(charArr[i]);
if(toNum(charArr[i]) > toNum(charArr[i-1])){
res -= 2* toNum(charArr[i-1]);
}
}
return res;
}
public int toNum(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 -1;
}
}
}