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.
思路:
- 转换公式而已 前面的比自己大 相加 前面的比自己少 相减
- map的使用
我的代码:
public class Solution { public int romanToInt(String s) { int len = s.length() ; Map<Character, Integer> romanMap = new HashMap<Character,Integer>() ; romanMap.put('I',1) ; romanMap.put('V',5) ; romanMap.put('X',10) ; romanMap.put('L',50) ; romanMap.put('C',100) ; romanMap.put('D',500) ; romanMap.put('M',1000) ; int i = len - 1 ; int sum = romanMap.get(s.charAt(i)) ; i -- ; while(i >= 0) { int cur = romanMap.get(s.charAt(i)) ; int pre = romanMap.get(s.charAt(i + 1)) ; if( cur < pre) sum -= cur; else sum += cur ; i -- ; } return sum ; } }
posted on 2015-03-05 10:59 zhouzhou0615 阅读(137) 评论(0) 编辑 收藏 举报