罗马数字转整数【java实现】
思路:先建立一个HashMap将I至M七个罗马符号及其对应的数字值存储下来,然后将字符串转换为int整数数组。初始化一个sum,从左向右遍历到倒数第二位,如果a[i]大于a[i+1],则加上a[i],否则减去a[i]。注意最后加上最后一位的a[s.length()-1]。
代码如下:
class Solution {
public int romanToInt(String s) {
HashMap<String , Integer> map =new HashMap<String , Integer>();
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 []a=new int[100];
for(int i=0;i<s.length();i++){
a[i]=map.get(s.substring(i,i+1));
}
int sum=0;
for(int i=0;i<s.length()-1;i++){
if(a[i]<a[i+1]) sum=sum-a[i];
else sum+=a[i];
}
sum+=a[s.length()-1];
return sum;
}
}