13.罗马数字转为整数
罗马数字有I-1、V-5、X-10、L-50、C-100、D-500、M-1000
主要思路是采用哈希表来存储这些规则,然后遍历
public int romanToInt(String s) {
int n = s.length();
if(n == 0) return 0;
char[] arr = s.toCharArray();
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 res = 0;
for(int i = 0; i < arr.length; i++) {
char c = arr[i];
res += map.get(c);
if(i > 0 && map.get(c) > map.get(arr[i-1])) {
res -= 2*map.get(arr[i-1]);
}
}
return res;
}