13. Roman to Integer - cocoder39/coco39_LC GitHub Wiki
Java
class Solution {
private static Map<Character, Integer> values = new HashMap<>();
static {
values.put('M', 1000);
values.put('D', 500);
values.put('C', 100);
values.put('L', 50);
values.put('X', 10);
values.put('V', 5);
values.put('I', 1);
}
public int romanToInt(String s) {
int i = 0;
int value = 0;
while (i < s.length()) {
int curVal = values.get(s.charAt(i));
int nextVal = 0;
if (i + 1 < s.length()) {
nextVal = values.get(s.charAt(i+1));
}
if (curVal < nextVal) {
value += nextVal - curVal;
i += 2;
} else {
value += curVal;
i += 1;
}
}
return value;
}
}