题目
分析
只需要注意减情况的判断
代码实现
public static int romanToInt(String s) { HashMap<Character, Integer> map = init(); char[] chas=s.toCharArray(); int res=0; for(int i=0;i<chas.length;i++) { if(i!=0&&( (chas[i-1]=='I'&&(chas[i]=='V'||chas[i]=='X')) || (chas[i-1]=='X'&&(chas[i]=='L'||chas[i]=='C')) || (chas[i-1]=='C'&&(chas[i]=='D'||chas[i]=='M')))) { res-=map.get(chas[i-1]); res+=(map.get(chas[i])-map.get(chas[i-1])); } else { res+=map.get(chas[i]); } } return res; } public static HashMap<Character,Integer> init() { 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); return map; }
学习情况
1次