题目分析
罗马数字转整数,其实就是如果一个字符比后面紧跟的字符小那么表示负数,其余表示正数,然后求和即可。
java代码
public int romanToInt(String s) {
Map<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);
int ans = 0;
for(int i=0;i<s.length();i++){
if(i+1<s.length() && map.get(s.charAt(i))<map.get(s.charAt(i+1))){
ans -= map.get(s.charAt(i));
}else{
ans += map.get(s.charAt(i));
}
}
return ans;
}