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;
    }
}
相关推荐
SL_staff3 小时前
JVS-Logic:从页面配置工具到企业级业务逻辑中枢的技术演进
java·算法·全栈
DevRay3 小时前
Java 21虚拟线程深度实战:告别线程池焦虑,百万并发吞吐量直接翻倍(原理+代码+避坑)
java·开发语言
陌シ未央ゞ3 小时前
基于BM25算法和RRF实现的混合索引(java版)
人工智能·spring boot·后端·算法
forestsea3 小时前
从零构建 Java 智能体 RAG 系统:Milvus 向量数据库实战指南
java·数据库·milvus
renhongxia13 小时前
数字孪生不止在工厂:能源、医疗与农业
人工智能·深度学习·算法·机器学习·数字孪生
lifewange3 小时前
VSCode怎么运行java
java·ide·vscode
Navigator_Z3 小时前
LeetCode //C - 1250. Check If It Is a Good Array
c语言·算法·leetcode
用户094248568033 小时前
第10章:OpenJDK异常体系、栈轨迹与错误诊断入门
java·jvm
醉颜凉3 小时前
Java 必看:如何彻底避免 HashMap 多线程死循环问题?
java·开发语言
默 语3 小时前
Java新手入门:从零开始安装JDK并配置环境变量
java·开发语言·python·mysql·group by·1024程序员节·数据去重