13. Roman to Integer

Given a roman numeral, convert it to an integer.

Input is guaranteed to be within the range from 1 to 3999.

//这题到现在也不会写,要记住那些转换真的感觉没有什么用。贴个别人的答案看懂好了

public class Solution {
    public int romanToInt(String s) {
        if(s == null || s.length()== 0){
            return 0;
        }
        Map<Character, Integer> map = new HashMap<Character, 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 result = 0;
        for (int i=0; i < s.length(); i++){
            char c = s.charAt(i);
            result += map.get(c);
                if(i != 0){
                    char prev = s.charAt(i-1);
                    if(map.get(prev)<map.get(c)){
                        result -=map.get(prev)*2;
                    }
                }
        }
        return result;
    }
}