
遍历,下一个值不大于当前值就加上当前值,否则就减去当前值
java
class Solution {
public int romanToInt(String s) {
Map<Character, Integer> map = Map.of(
'I', 1,
'V', 5,
'X', 10,
'L', 50,
'C', 100,
'D', 500,
'M', 1000
);
int sum = 0;
for (int i = 0; i < s.length(); i++) {
Integer curVal = map.get(s.charAt(i));
if (i + 1 < s.length() && curVal < map.get(s.charAt(i + 1))) {
sum -= curVal;
} else {
sum += curVal;
}
}
return sum;
}
}