题目很简单,不解释,直接上代码
class Solution {
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;
int len = s.length();
for(int i = 0; i<len; i++){
char a = s.charAt(i);
if(i + 1 < len){
char b = s.charAt(i+1);
if(a == 'I' && b == 'V'){
ans += 4;
i++;
}
else if(a == 'I' && b == 'X'){
ans += 9;
i++;
}
else if(a == 'X' && b == 'L'){
ans += 40;
i++;
}
else if(a == 'X' && b == 'C'){
ans += 90;
i++;
}
else if(a == 'C' && b == 'D'){
ans += 400;
i++;
}
else if(a == 'C' && b == 'M'){
ans += 900;
i++;
}
else{
ans += map.get(a);
}
}
else
ans += map.get(a);
}
return ans;
}
}