首页 > 代码库 > Roman to Integer

Roman to Integer

Given a roman numeral, convert it to an integer.

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

 

 1 public class Solution { 2     public int romanToInt(String s) { 3         HashMap<String, Integer> numbers = new HashMap<String, Integer>(); 4         numbers.put("M", 1000); 5         numbers.put("CM", 900); 6         numbers.put("D", 500); 7         numbers.put("CD", 400); 8         numbers.put("C", 100); 9         numbers.put("XC", 90);10         numbers.put("L", 50);11         numbers.put("XL", 40);12         numbers.put("X", 10);13         numbers.put("IX", 9);14         numbers.put("V", 5);15         numbers.put("IV", 4);16         numbers.put("I", 1);17         int result = 0;18         for(int i = 0; i < s.length(); i ++){19             if(i + 1 < s.length() && numbers.containsKey(s.substring(i, i + 2))){ 20                 result += numbers.get(s.substring(i, i + 2)); 21                 i ++;22             }23             else result += numbers.get(s.substring(i,i + 1));24         }25         return result;26     }27 }