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;
    }
}
相关推荐
房开民1 小时前
c++总结
java·开发语言·c++
好大哥呀1 小时前
C++ 多态
java·jvm·c++
毕设源码-赖学姐1 小时前
【开题答辩全过程】以 基于Java的医院器材管理系统的设计与实现为例,包含答辩的问题和答案
java·开发语言
float_com1 小时前
【java常用API】----- Arrays
java·开发语言
阿豪学编程2 小时前
LeetCode724.:寻找数组的中心下标
算法·leetcode
LuckyTHP3 小时前
迁移shibboleth java获取shibboleth用户信息
java·开发语言
墨韵流芳3 小时前
CCF-CSP第41次认证第三题——进程通信
c++·人工智能·算法·机器学习·csp·ccf
客卿1233 小时前
数论===质数统计(暴力法,)
java·开发语言
华科易迅3 小时前
Spring 事务(注解)
java·数据库·spring
写代码的小阿帆3 小时前
Web工程结构解析:从MVC分层到DDD领域驱动
java·架构·mvc