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

13. 罗马数字转整数

时间:2023-10-25 16:44:24浏览次数:33  
标签:10 13 int 整数 II 罗马数字 100 500

罗马数字包含以下七种字符: 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 。

通常情况下,罗马数字中小的数字在大的数字的右边。但也存在特例,例如 4 不写做 IIII,而是 IV。数字 1 在数字 5 的左边,所表示的数等于大数 5 减小数 1 得到的数值 4 。同样地,数字 9 表示为 IX。这个特殊的规则只适用于以下六种情况:

I 可以放在 V (5) 和 X (10) 的左边,来表示 4 和 9。
X 可以放在 L (50) 和 C (100) 的左边,来表示 40 和 90。
C 可以放在 D (500) 和 M (1000) 的左边,来表示 400 和 900。
给定一个罗马数字,将其转换成整数。


示例 1:

输入: s = "III"
输出: 3

代码:


class Solution {
public:
    int romanToInt(string s) {
        int result=0;
        map<char,int> luomab={
            {'I',1},
            {'V',5},
            {'X',10},
            {'L',50},
            {'C',100},
            {'D', 500},
            {'M', 1000}
        };//初始化哈希表
        for(int i=0;i<s.length();i++)
        {
            if(luomab[s[i]] < luomab[s[i+1]])
                result -= luomab[s[i]];
            else
            {
                result += luomab[s[i]];
            }
        }
        return result;
    }
};

标签:10,13,int,整数,II,罗马数字,100,500
From: https://www.cnblogs.com/lihaoxiang/p/17787572.html

相关文章

  • 【洛谷 8601】 [蓝桥杯 2013 省 A] 剪格子
    #[蓝桥杯2013省A]剪格子##题目描述如图$1$所示,$3\times3$的格子中填写了一些整数。![](https://cdn.luogu.com.cn/upload/image_hosting/hsfjsi38.png)我们沿着图中的红色线剪开,得到两个部分,每个部分的数字和都是$60$。本题的要求就是请你编程判定:对给定的$m\tim......
  • FastAPI学习-13. 请求Header 参数
    前言你可以使用定义 Query, Path 和 Cookie 参数一样的方法定义Header参数。声明 Header 参数首先导入 Header:fromfastapiimportFastAPI,Header然后使用和Path, Query and Cookie 一样的结构定义header参数第一个值是默认值,你可以传递所有的额外验证或注释参......
  • 对整数逆序两次,判断是否与原来的值相等
    调用函数的代码:boolisSameAfterReversals(intnum){  intnewans=0,newans2=0,i=num;  if(i<10){    returntrue;  }  while(i>0){      newans=newans*10+i%10;      i/=10;      ......
  • LeetCode Day13 239&347
    //利用双端队列手动实现单调队列/***用一个单调队列来存储对应的下标,每当窗口滑动的时候,直接取队列的头部指针对应的值放入结果集即可*单调队列类似(tail-->)3-->2-->1-->0(-->head)(右边为头结点,元素存的是下标)*/239. 滑动窗口最大值classSolution{......
  • 升级Lync Server 2013到Skype for Business 2019(二十)
    写在前面在上一章我们完成了持久聊天服务器下线,本章我们将介绍如何下线LyncServer2013前端服务器。前端服务器功能移除打开拓扑生成器,下载最新的拓扑。导航到Lync2013前端服务器池,编辑属性。取消勾选如下功能,之后点击OK。ConferencingEnterpriseVoiceArchivingMonitoring发布拓......
  • 13.4 DirectX内部劫持绘制
    相对于外部绘图技术的不稳定性,内部绘制则显得更加流程与稳定,在Dx9环境中,函数EndScene是在绘制3D场景后,用于完成将最终的图像渲染到屏幕的一系列操作的函数。它会将缓冲区中的图像清空,设置视口和其他渲染状态,执行顶点和像素着色器,最后在后台缓冲区中生成一张完整的渲染图像,然后将其......
  • [20231013]为什么刷新缓存后输出记录顺序发生变化3.txt
    [20231013]为什么刷新缓存后输出记录顺序发生变化3.txt--//当年提的问题,链接http://blog.itpub.net/267265/viewspace-2763181/=>[20210316]为什么刷新缓存后输出记录顺序发生变化.txt,--//正好别人问我,顺便我重复看了一下,顺便解答这个问题,实际上也许解答不对,许多行为我仅仅是猜测......
  • [20231013]rename IDL_UB1$的恢复.txt
    [20231013]renameIDL_UB1$的恢复.txt--//看了https://www.anbob.com/archives/7545.html链接,对方rename操作,导致无法建立表操作.--//idl_ub1$表是用来存储PL/SQL的代码单元的,包括DIANA等,IDL在这里代表InterfaceDefinitionLanguage.--//这个对象的含义可以从Ixora找到一点提示......
  • 每日总结13
    今天上午上了软件设计的实验课,课上完成了实验一的作业,相对来说比较简单。然后上了杨子光老师的人机交互技术,学习了hplus,hples提供了各种前端组件,方便了前端代码的书写。下午完成了李静老师的实验作业,用hive统计单词数量。......
  • Oracle10gOCP042题库130题共168题
    声明:对于答案的相关的说明,是个人对Oracle的理解。1.Becauseofapoweroutage,instancefailurehasoccurred.Fromwhatpointintheredologdoesrecoverybeginandwheredoesitend?A.CurrentredologandinactiveredologB.Checkpointpositiontoendofr......