class Solution {
public int romanToInt(String s) {
Map<String,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);
char [] a =s.toCharArray();
char [] b =null;
int temp = 0;
int sum = 0 ;
// System.out.println(s.length());
for ( int i = 0 ; i < s.length() ; i++){
int left=map.get(Character.toString(a[i]));
int right = 0 ;
if(i+1<s.length()) right=map.get(Character.toString(a[i+1]));
if(left>right){
sum = sum + left;
sum = sum + temp;
temp=0;
}
else if((left-right!=0)&&((right-left)==4||(right-left)==9||(right-left)%40==0||(right-left)%400==0||(right-left)%900==0||(right-left)%90==0)){
sum = sum + (right-left) ;
temp = 0 ;
i = i + 1 ;
}
else{
temp = temp + left;
}
}
if(temp!=0) sum=sum+temp;
return sum;
}
}
[java]给定一个罗马数字,将其转换成整数。
最新推荐文章于 2024-10-06 20:29:51 发布