首页 > 其他分享 >LeetCode 13 罗马数字转整数

LeetCode 13 罗马数字转整数

时间:2023-10-07 22:12:12浏览次数:41  
标签:13 int 后面 罗马数字 result LeetCode

LeetCode 13 罗马数字转整数

1. 题目地址

    https://leetcode.cn/problems/roman-to-integer/description/

2. 题解

    这道题的解题过程非常简单,具体如下:
        1.  我们需要将罗马数字对应的数,存到一个哈希表中。待用到时,直接使用即可。
        2.  对于正常情况讲(前面的罗马数字大于后面的罗马数字),当我们遍历到一个罗马数字之后,直接累加其值即可。
        3.  对于题目中的例外情况,我们发现:该二元组后面的罗马数字要大于前面的罗马数字,因此我们直接累加:后面的罗马数字值 - 前面的罗马数字值即可。需要注意的是:我们需要判断边界(该罗马数字后面一定要有数)

3. 代码

class Solution {
public:
    int romanToInt(string s) {
        int result = 0;
        unordered_map<char,int> h;
        h['I'] = 1;
        h['V'] = 5;
        h['X'] = 10;
        h['L'] = 50;
        h['C'] = 100;
        h['D'] = 500;
        h['M'] = 1000;
        for(int i = 0;i < s.size(); i++){
            //如果该数字后面有数且后面的值大于前面的值(属于例外情况)
            if(i + 1 < s.size() && h[s[i]] < h[s[i+1]]){
                result += h[s[i+1]] - h[s[i]];
                //跳过该二元组,进入下一个罗马数字
                i++;
            }else{
                result += h[s[i]];
            }
        }
        return result;
    }
};

标签:13,int,后面,罗马数字,result,LeetCode
From: https://www.cnblogs.com/gao79135/p/17747602.html

相关文章

  • 2023-2024-1 20231312 《计算机基础与程序设计》第二周学习总结
    作业信息|这个作业属于哪个课程|<班级的链接>2023-2024-1-计算机基础与程序设计||这个作业要求在哪里|<作业要求链接>2023-2024-1计算机基础与程序设计第二周作业||这个作业的目标|<计算机科学概论第1章并完成云班课测试《C语言程序......
  • 20231306 gcc测试
    通过homebrew安装gcc2.检测gcc安装成功3.创建文件夹“my_program.c"并编写代码4.创建文件“my_program"并用gcc进行预处理......
  • 洛谷 P1969 [NOIP2013 提高组] 积木大赛 - 小思维
    洛谷P1969[NOIP2013提高组]积木大赛[NOIP2013提高组]积木大赛题目描述春春幼儿园举办了一年一度的“积木大赛”。今年比赛的内容是搭建一座宽度为\(n\)的大厦,大厦可以看成由\(n\)块宽度为\(1\)的积木组成,第\(i\)块积木的最终高度需要是\(h_i\)。在搭建开始之前......
  • BLOG-1-7213
    (1)前言:主要用于完成学校的互评作业大家懂的都懂,前三次的题目集,大概囊括了最基础的输入输出、类的创建;字符串的各种操作(定位某个特点字符在字符串中的下标、提取某段需要的子字符串、对于某个字符或某个子字符串的格式判断等等)、类的交互、函数的创建与使用以及正则表达式的运用等等......
  • [Leetcode Weekly Contest]365
    链接:LeetCode[Leetcode]2873.有序三元组中的最大值I给你一个下标从0开始的整数数组nums。请你从所有满足i<j<k的下标三元组(i,j,k)中,找出并返回下标三元组的最大值。如果所有满足条件的三元组的值都是负数,则返回0。下标三元组(i,j,k)的值等于(nums[i]......
  • LY1371 [ 20231007 NOIP 模拟赛 T0 ] 十一之争
    题意给定一个长度为\(n\)的数字串\(s\)和只包含yo的字符串\(t\),yoimiya会和oimiya玩\(n\)轮游戏,初始有一个数字串\(x\)为\(0\),每次:如果\(t_i\)是y则是yoimiya操作,如果是o则是oimiya操作。每次操作:将\(s_i\)或者\(0\)加入\(x\)的末尾。如果最......
  • 2023-2024-1 20231306《计算机基础与程序设计》第二周学习总结
    这个作业属于哪个课程2023-2024-1-计算机基础与程序设计这个作业要求在哪里2023-2024-1计算机基础与程序设计第二周作业这个作业的目标数字化、信息安全、自学教材计算机科学概论第1章和《C语言程序设计》第1章并完成云班课测试作业正文https://i.cnblogs.co......
  • 2023-2024-1 学号20231329 《计算机基础与程序设计》第2周学习总结
    这个作业属于哪个课程https://edu.cnblogs.com/campus/besti/2023-2024-1-CFAP这个作业的要求在哪里https://www.cnblogs.com/rocedu/p/9577842.html#WEEK02这个作业的目标计算机科学概论第1章并完成云班课测试《C语言程序设计》第1章并完成云班课测试作业正......
  • 2023-2024-1 20231320 《计算机基础与程序设计》第二周学习总结
    2023-2024-120231320《计算机基础与程序设计》第二周学习总结作业信息这个作业属于哪个课程<班级的链接>(2023-2024-1-计算机基础与程序设计)这个作业要求在哪里<作业要求的链接>(2022-2023-1计算机基础与程序设计第一周作业)这个作业的目标<自学《计算机基础与......
  • [ARC136E] Non-coprime DAG
    [ARC136E]Non-coprimeDAG显然只和可达性有关。注意到这样一件事情:所有偶数都是可达的。而对于奇数而言,\((x-\operatorname{lpf}(x),x+\operatorname{lpf}(x))\)这个区间内的数和\(x\)一定不可达。定义\(x\)控制的区间为\((x-\operatorname{lpf}(x),x+\operator......