leetcode13.罗马数字转整数

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

java 复制代码
class Solution {
    public int romanToInt(String s) {
        Map<Character, Integer> 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;
    }
}
相关推荐
宋一诺333 分钟前
机器学习——随机森林算法
算法·随机森林·机器学习
无聊的小坏坏11 分钟前
二分查找的边界艺术:LeetCode 34 题深度解析
算法·leetcode
CHNLee玉米14 分钟前
题目解析 1.找单独的数 | 豆包MarsCode AI刷题
算法
緈福的街口15 分钟前
【leetcode】20. 有效的括号
linux·算法·leetcode
网安INF35 分钟前
密码学:解析Feistel网络结构及实现代码
java·网络安全·密码学·des·feistel
萝卜白菜。37 分钟前
关于TongWeb数据源兼容mysql驱动的注意事项
java·mysql
失败才是人生常态42 分钟前
Java实习面试题
java·开发语言
fanTuanye1 小时前
JavaWeb是什么?总结一下JavaWeb的体系
java·大数据·javaweb·基础·体系
InJre1 小时前
STM32通过rt_hw_hard_fault_exception中的LR寄存器追溯程序问题
java·stm32·嵌入式硬件
PixelMind1 小时前
【LUT技术专题】图像自适应3DLUT代码讲解
人工智能·python·算法·lut