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;
    }
}
相关推荐
战血石LoveYY12 小时前
Integer类型超限,导致数据异常
java·算法
紫金修道12 小时前
PnP算法介绍(Perspective-n-Point)
算法
乐观的Terry13 小时前
1、为什么要自己造发布系统
java·spring boot·后端·spring cloud·架构
froyoisle13 小时前
CSP 真题解析:[CSP-J 2019-T4] 加工零件
c++·算法·bfs·csp-j·算法竞赛·信息学·信奥赛
兰令水14 小时前
hot100【acm版】【2026.7.13打卡-java版本】
java·开发语言·数据结构·算法·leetcode·面试
Tisfy14 小时前
LeetCode 1291.顺次数:打表/枚举
算法·leetcode·题解·枚举·遍历
ysa05103014 小时前
【板子】拓扑排序
c++·算法·图论·板子
名字还没想好☜14 小时前
用 Redis + Redisson 实现分布式锁:从踩坑到生产可用
java·redis·分布式·junit·分布式锁·redisson
谙忆14 小时前
图片CDN与边缘优化实战:缓存策略、图片处理型CDN与动态裁剪
java·spring·缓存
ltqvibe15 小时前
怎么让本体语义变成可执行的智能体
java·人工智能·本体语义