class Solution {
public int romanToInt(String s) {
HashMap<Character, Integer> map = new HashMap<>();
map.put('I',1);
map.put('V',5);
map.put('X',10);
map.put('L',50);
map.put('C',100);
map.put('D',500);
map.put('M',1000);
char[] chars = s.toCharArray();
int sum = 0;
int i = 0;
for (; i < chars.length - 1 ; i++) {
Integer integer = map.get(chars[i]);
Integer integer1 = map.get(chars[i + 1]);
sum += integer < integer1 ? -integer:integer;
}
return sum + map.get(chars[i]);
}
}
解题关键在于hashmap映射关系的建立以及对于题目理解程度,也就是罗马数字权重小的符号在前为负,把握住以上两点,代码基础扎实的情况下,解题水到渠成