题目
分析
只需要注意减情况的判断
代码实现
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次

京公网安备 11010502036488号