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 }

 

你可能感兴趣的:(Integer)