leetcode题解--罗马数字转换

题目:将罗马数字字符串转换为数字,当小字符在大字符前的时候,结果为大数减小数,如IV=4,IV=9

具体代码如下(java):

Public int romantoInt(String s){
    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 len = s.length();
    int sum = map.get(s.charAt(len-1));
    for(int i=len-2;i>=0;--i){
        if(map.get(s.charAt(i))<map.get(s.charAt(i+!))){
            sum=sum-map.get(s.charAt(i));
        }else
        {
            sum=sum+map.get(s.charAt(i));
        }
    }
    return sum;
}

本博客所有文章除特别声明外,大部分为学习心得,欢迎与博主联系讨论