python阿拉伯数字转罗马数字,数字转换Python
标题描述
罗马数字包含以下七个字符:I、V、X、L、C、D和m。
字符数值
我1
第五版
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。这一特殊规则仅适用于以下六种情况:
我可以放在v (5)和x (10)的左边代表4和9。
x可以放在l (50)和c (100)的左边,代表40和90。
c可以放在d (500)和m (1000)的左边,分别代表400和900。
给定一个罗马数字,将其转换为整数。确保输入在1到3999的范围内。
示例1:
输入: iii
输出:3
示例2:
输入: iv
输出:4
示例3:
输入: ix
产出:9
示例4:
输入:“lviii”
产量:58
解释:l=50,v=5,iii=3。
示例5:
输入:“mcmxciv”
产量:1994年
解释:m=1000,cm=900,xc=90,iv=4。
测试中心/站点
字典映射
根据索引和比较大小遍历值。
字典值
算法
首先建立一个dict映射符号和值,然后从左到右遍历字符串,判断左右值,定义结果变量存储运算结果:
S[i]=s[i 1]然后将结果与对应于该字符的数字相加。
S[i]=s[i 1]然后结果减去字符对应的数字。
密码
定义浪漫:
:类型s: str
:rtype: int
dic={i:1, v:5, x:10, l:50, c:100, d:500, m:1000}
结果=0
对于范围内的I(透镜):
如果我
结果-=dic[s[i]]
否则:
result=dic[s[i]]
返回答案
如果你对本文有什么疑问或者想说什么,请点击留言回复,成千上万的网友会为你解答!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。