首页 > 其他 > 详细

Roman to Integer

时间:2015-03-05 12:36:16      阅读:221      评论:0      收藏:0      [点我收藏+]

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

 

Roman to Integer

原文:http://www.cnblogs.com/sunshisonghit/p/4315221.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!