java:
class Solution {
Map<Character, Integer> map = new HashMap(){{
put('I', 1);
put('V', 5);
put('X', 10);
put('L', 50);
put('C', 100);
put('D', 500);
put('M', 1000);
}};
public int romanToInt(String s) {
int ans = 0;
for(int i = 0; i < s.length(); i++){
int tmp = map.get(s.charAt(i));
if(i < s.length() - 1 && tmp < map.get(s.charAt(i + 1))){
ans -= tmp;
}else{
ans += tmp;
}
}
return ans;
}
}
python:
class Solution:
map = {
'I' : 1,
'V' : 5,
'X': 10,
'L': 50,
'C': 100,
'D': 500,
'M': 1000,
}
def romanToInt(self, s: str) -> int:
ans = 0
for i, ch in enumerate(s):
tmp = Solution.map[ch]
if i < len(s) - 1 and tmp < Solution.map[s[i + 1]]:
ans -= tmp
else:
ans += tmp
return ans