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; int res = 0; HashMap<Character, Integer> map = new HashMap<>(); map.put(‘M‘, 1000); map.put(‘D‘, 500); map.put(‘C‘, 100); map.put(‘L‘, 50); map.put(‘X‘, 10); map.put(‘V‘, 5); map.put(‘I‘, 1); for (int i = 0; i < s.length() - 1; i++) { if (map.get(s.charAt(i)) >= map.get(s.charAt(i + 1))) { res += map.get(s.charAt(i)); } else { res -= map.get(s.charAt(i)); } } res += map.get(s.charAt(s.length() - 1)); return res; } }
[LeetCode] 13. Roman to Integer ☆☆
原文:http://www.cnblogs.com/strugglion/p/6404023.html