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;
    }
}
相关推荐
White_Can5 分钟前
两个数组的交集(暴力、set、哈希)
算法
我不是小upper10 分钟前
5 种距离算法总结!!
算法
摄殓永恒13 分钟前
【入门】对角线II
数据结构·c++·算法
俺不是西瓜太郎´•ﻌ•`20 分钟前
二维差分数组(JAVA)蓝桥杯
java·开发语言·蓝桥杯
cainiao08060525 分钟前
Java大数据可视化在城市空气质量监测与污染溯源中的应用:GIS与实时数据流的技术融合
java·开发语言·信息可视化
2685725927 分钟前
Java 23种设计模式 - 行为型模式11种
java·开发语言·设计模式
Coding小公仔27 分钟前
翻转数位题目解释和代码
数据结构·算法
hh妙蛙种子28 分钟前
牛客练习赛138
c++·经验分享·算法·leetcode·职场和发展·深度优先·图论
Swift社区33 分钟前
LeetCode 270:在二叉搜索树中寻找最接近的值(Swift 实战解析)
算法·leetcode·swift
编程点滴路1 小时前
LinkedList源码解析
java·开发语言