zoukankan      html  css  js  c++  java
  • 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 ;
        
        }
    }
    View Code
  • 相关阅读:
    AD预测论文研读系列2
    hdu 5795
    sg函数的应用
    二分查找
    快速幂
    筛选法素数打表
    多校hdu-5775 Bubble sort(线段树)
    多校hdu5754(博弈)
    多校hdu5738 寻找
    多校hdu5726 线段树+预处理
  • 原文地址:https://www.cnblogs.com/sunshisonghit/p/4315221.html
Copyright © 2011-2022 走看看