leetcode13.罗马数字转整数

leetcode13.罗马数字转整数_第1张图片

leetcode13.罗马数字转整数_第2张图片 leetcode13.罗马数字转整数_第3张图片

 遍历,下一个值不大于当前值就加上当前值,否则就减去当前值

class Solution {
    public int romanToInt(String s) {
        Map map = Map.of(
                'I', 1,
                'V', 5,
                'X', 10,
                'L', 50,
                'C', 100,
                'D', 500,
                'M', 1000
        );
        int sum = 0;
        for (int i = 0; i < s.length(); i++) {
            Integer curVal = map.get(s.charAt(i));
            if (i + 1 < s.length() && curVal < map.get(s.charAt(i + 1))) {
                sum -= curVal;
            } else {
                sum += curVal;
            }
        }
        return sum;
    }
}

你可能感兴趣的:(算法,leetcode,java)