zoukankan      html  css  js  c++  java
  • Roman to Integer

    Given a roman numeral, convert it to an integer.

    Input is guaranteed to be within the range from 1 to 3999.

    自己写的代码第一次没有AC,超时。第二遍就莫名其妙通过了

    public int romanToInt(String s){
            int result = 0;
            char[] array = s.toCharArray();
            Map<Character,Integer> roman = new HashMap<>();
            roman.put('I',1);
            roman.put('V',5);
            roman.put('X',10);
            roman.put('L',50);
            roman.put('C',100);
            roman.put('D',500);
            roman.put('M',1000);
            if (array.length==1){
                return roman.get(array[0]);
            }
            for (int current = 1; current < array.length; current++) {
                int pre = current-1;
                int preint = roman.get(array[pre]);
                int currentint = roman.get(array[current]);
                if (preint>=currentint){
                    result+=preint;
                }
                else{
                    result-=preint;
                }
            }
            result+=roman.get(array[array.length-1]);
            return result;
        }
    

    附上相似代码

    public static int romanToInt(String s) {
    	if (s == null || s.length() == 0)
    		return -1;
    	HashMap<Character, Integer> map = new HashMap<Character, Integer>();
    	map.put('I', 1);
    	map.put('V', 5);
    	map.put('X', 10);
    	map.put('L', 50);
    	map.put('C', 100);
    	map.put('D', 500);
    	map.put('M', 1000);
    	int len = s.length(), result = map.get(s.charAt(len - 1));
    	for (int i = len - 2; i >= 0; i--) {
    		if (map.get(s.charAt(i)) >= map.get(s.charAt(i + 1)))
    			result += map.get(s.charAt(i));
    		else
    			result -= map.get(s.charAt(i));
    	}
    	return result;
    }
    
  • 相关阅读:
    Cisco Packet Tracer 7.2
    "%Error opening tftp://255.255.255.255/network config"
    CPI 3.0磁盘空间不足!
    ASA Failover
    思科交换机配置单播MAC地址过滤
    WLC HA模式下的注意事项
    802.11r mixed mode
    IEEE 802.11r-2008
    iOS 上通过 802.11k、802.11r 和 802.11v 实现 Wi-Fi 网络漫游
    Flexconnect部署
  • 原文地址:https://www.cnblogs.com/bingo2-here/p/7517925.html
Copyright © 2011-2022 走看看