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;
    }
}
相关推荐
笺上山河梦16 分钟前
文件操作(二进制文件)
开发语言·c++·学习·算法
大慕慕好懒1 小时前
PHP弱类型hash比较缺陷
算法·哈希算法
caihuayuan41 小时前
Redis奇幻之旅(三)1.redis客户端与服务端
java·大数据·sql·spring·课程设计
snowfoootball1 小时前
最短路问题
数据结构·算法
匆匆整棹还2 小时前
关于tomcat乱码和idea中控制台乱码的问题
java·tomcat·intellij-idea
有你的冬天1982 小时前
数据结构(一)
数据结构·算法
何似在人间5752 小时前
SpringAI+DeepSeek大模型应用开发——1 AI概述
java·人工智能·spring·springai
满怀10153 小时前
【Python进阶】列表:全面解析与实战指南
python·算法
匹马夕阳3 小时前
Java开发中的设计模式之观察者模式详细讲解
java·观察者模式·设计模式
风铃儿~3 小时前
Java微服务注册中心深度解析:环境隔离、分级模型与Eureka/Nacos对比
java·分布式·微服务·面试