leetcode13题罗马数字转成整数

这篇具有很好参考价值的文章主要介绍了leetcode13题罗马数字转成整数。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

代码

 public static int romanToInt(String s) {
        // 创建一个HashMap,将罗马数字字符映射为整数值
        HashMap<Character, Integer> map = new HashMap<>();
        map.put('I', 1);
        map.put('V', 5);
        map.put('X', 10);
        map.put('L', 50);
        map.put('C', 100);
        map.put('D', 500);
        map.put('M', 1000);
        // 初始化总和为0
        int sum = 0;
        // 遍历输入的罗马数字字符串
        for (int i = 0; i < s.length(); i++) {
            // 获取当前字符对应的整数值
            Integer value = map.get(s.charAt(i));
            // 如果当前字符不是最后一个字符,且当前字符的值小于下一个字符的值
            if (i < s.length() - 1 && value < map.get(s.charAt(i + 1))) {
                // 减去当前字符的值
                sum -= value;
            } else {
                // 否则,加上当前字符的值
                sum += value;
            }
        }
        // 返回最终的整数值
        return sum;
    }

leetcode测试

leetcode13题罗马数字转成整数,java,数据结构,算法文章来源地址https://www.toymoban.com/news/detail-828357.html

到了这里,关于leetcode13题罗马数字转成整数的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 暴力破解(if循环)解决leetcode数字转成罗马数字

    1.题目描述 2.解题思路 刚看到这个题目的时候,感觉说的有点啰嗦,其实不难发现,这个题目和之前的给你多少钱,什么2元,5元的,给你一个数字,让你算各种钱币有多少张。无非就是从小到大进行判断,首先判断给定的数字,能容纳多少个最大的,然后依次减少。 3.代码

    2024年02月19日
    浏览(40)
  • leetcode12. 整数转罗马数字

    首先这题不需要怎么考虑罗马数字顺序的问题,罗马转整数才需要,因为我模拟出来对照表就行,不涉及加减运算。 那怎么模拟对照表呢?每一个十分位的整数,都是两个字母的组合。那我按区间列出每个十分位的组合就ok。 直接模拟出1-10,10-100,100-1000,1000-3000的罗马字符

    2024年02月17日
    浏览(35)
  • 【Leetcode刷题】算法:罗马数字转整数

    定义一个 Solution 类,该类包含一个 romanToInt 方法用于将罗马数字转换为整数。 初始化变量 answer 为 0,用于保存转换后的整数值。 获取输入字符串 s 的长度,并保存在变量 length 中。 创建一个字典 d,将每个罗马数字字符与对应的数值进行映射。 使用 for 循环遍历 s 中的每个

    2024年02月05日
    浏览(87)
  • Leetcode算法系列| 12. 整数转罗马数字

    罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000 例如, 罗马数字 2 写做 II ,即为两个并列的 1。12 写做 XII ,即为 X + II 。 27 写做 XXVII, 即为 XX + V + II 。 通常情况下,罗马数字中小的数字在大的数字的右边。但也存在特例,例如

    2024年02月02日
    浏览(42)
  • 面试经典150题——罗马数字转整数

    罗马数字包含以下七种字符:  I ,  V ,  X ,  L , C , D  和  M 。 例如, 罗马数字 2 写做  II  ,即为两个并列的 1 。 12 写做  XII  ,即为  X  +  II  。 27 写做   XXVII , 即为  XX  +  V  +  II  。 通常情况下,罗马数字中小的数字在大的数字的右边。但也存在特例,例

    2024年02月12日
    浏览(36)
  • LeeCode前端算法基础100题(17)- 罗马数字转整数

    罗马数字包含以下七种字符:  I ,  V ,  X ,  L , C , D  和  M 。 例如, 罗马数字  2  写做  II  ,即为两个并列的 1 。 12  写做  XII  ,即为  X  +  II  。  27  写做   XXVII , 即为  XX  +  V  +  II  。 通常情况下,罗马数字中小的数字在大的数字的右边。但也存在特

    2024年01月19日
    浏览(51)
  • LeeCode前端算法基础100题(18)整数转罗马数字

    一、问题详情: 罗马数字包含以下七种字符:  I ,  V ,  X ,  L , C , D  和  M 。 例如, 罗马数字 2 写做  II  ,即为两个并列的 1。12 写做  XII  ,即为  X  +  II  。 27 写做   XXVII , 即为  XX  +  V  +  II  。 通常情况下,罗马数字中小的数字在大的数字的右边。但

    2024年01月18日
    浏览(41)
  • 【java】不要二、把字符串转成整数

    目录 🔥一、编程题 1.不要二 2.把字符串转换成整数   1.不要二 链接:不要二_牛客题霸_牛客网 (nowcoder.com) 描述 :二货小易有一个W*H的网格盒子,网格的行编号为0~H-1,网格的列编号为0~W-1。每个格子至多可以放一块蛋糕,任意两块蛋糕的欧几里得距离不能等于2。 对于两个格

    2023年04月09日
    浏览(38)
  • 【数据结构】13:表达式转换(中缀表达式转成后缀表达式)

    从头到尾依次读取中缀表达式里的每个对象,对不同对象按照不同的情况处理。 如果遇到空格,跳过 如果遇到运算数字,直接输出 如果遇到左括号,压栈 如果遇到右括号,表示括号里的中缀表达式已经扫描完毕,将栈顶的运算符弹出并输出, 直至遇到左括号(左括号出栈

    2024年02月19日
    浏览(49)
  • 力扣:罗马转整数

    class 定义了一个类Solution,这个类里面有有私有成员和共有成员 首先定义了一个私有成员,我也不知道为什么需要这个私有成员,unordered_mapunordered_mapchar, int用法再去搜搜。 注意两个头文件不要加h。 代码整体的思路就是定义一个类,这个类首先定义了私有对象一个map的字符到

    2024年02月06日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包