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; } }