美文网首页
13. Roman to Integer

13. Roman to Integer

作者: 苏州城外无故人 | 来源:发表于2018-12-06 16:55 被阅读0次
题目
测试用例

思路:左边的数字小于右边的数字,就加上左边的数字,反之就减去右边的数字,注意边界值。



    public static  int romantOInt(String s) {
        if (null == s || s.length() == 0){
            return -1;
        }
        Map<Character, Integer> romanMap = new HashMap<>();
        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 len = s.length();
        int sum = 0;
        for (int i = 0; i < s.length() - 1; i ++) {
            if (romanMap.get(s.charAt(i)) < romanMap.get(s.charAt(i+1))) {
                sum = sum - romanMap.get(s.charAt(i));
            } else {
                sum = sum + romanMap.get(s.charAt(i+1));
            }
        }
        return sum + romanMap.get(s.charAt(len - 1));
    }


相关文章

网友评论

      本文标题:13. Roman to Integer

      本文链接:https://www.haomeiwen.com/subject/uvbocqtx.html