码迷,mamicode.com
首页 > 其他好文 > 详细

Roman to Integer

时间:2015-03-05 12:39:02      阅读:126      评论: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
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!