罗马字符转整数(python)

罗马字符转整数(python)力扣:罗马字符转整数(python实现)难度:简单

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

题目:

罗马数字包含以下七种字符: 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。
给定一个罗马数字,将其转换成整数。

​
class Solution:
    def romanToInt(self, s: str) -> int:
        SYMBOL_VALUES = {
            'I': 1,
            'V': 5,
            'X': 10,
            'L': 50,
            'C': 100,
            'D': 500,
            'M': 1000,
        }
        a=0
        for i, element in enumerate(s):
            if i<len(s)-1 and SYMBOL_VALUES[s[i]] < SYMBOL_VALUES[s[i+1]]:
            #如果此时的罗马符号表示的数字比其右边的数字小的话,
            则左边的数字由加改为减,而右边的数字认为加
                a -= SYMBOL_VALUES[s[i]]
            else:
                a += SYMBOL_VALUES[s[i]]
        return a

​

执行用时:48 ms, 在所有 Python3 提交中击败了75.60%的用户

内存消耗:15 MB, 在所有 Python3 提交中击败了56.65%的用户

通过测试用例:3999 / 3999

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/188070.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Python实现索伯尔算子[通俗易懂]

    Python实现索伯尔算子[通俗易懂]Python实现索伯尔算子最近在学习Python,正好用sobel算子练练手,将就看看吧先放原图接着是用Opencv中sobel实现如下:#OpenCVori_img=cv.imread(“C:\\Users\\BLYX\\Desktop\\test\\temple1.jpg”)x=cv.Sobel(ori_img[:,:,0],cv.CV_16S,1,0)y=cv.Sobel(ori_img[:,:,0],cv.CV_16S,0,1)

    2022年7月14日
    15
  • 详解Element.scrollIntoView()

    详解Element.scrollIntoView()Element.scrollIntoView()方法让当前的元素滚动到浏览器窗口的可视区域内。语法element.scrollIntoView();//等同于element.scrollIntoView(true)element.scrollIntoView(alignToTop);//Boolean型参数element.scrollIntoView(scrollIntoViewOptions);//Object型参数参数alignToTop可选一个Boolean值

    2022年6月18日
    36
  • PAT乙级题库

    PAT乙级题库1001害死人不偿命的(3n+1)猜想(15分)1002写出这个数(20分)1004成绩排名(20分)1006换个格式输出整数(15分)1007素数对猜想(20分)1008数组元素循环右移问题(20分)1011A+B和C(15分)1012数字分类(20分)1013数素数(20分)1016部分A+B(1…

    2022年5月25日
    59
  • 目录列表工具–FtpList.exe

    目录列表工具–FtpList.exe

    2021年7月24日
    59
  • C#MQTTNET客户端使用说明

    C#MQTTNET客户端使用说明C#MQTTNET客户端使用说明1.如何使用1.我想启动MQTT客户端,我该怎么做?2.我想收到服务器发来消息,我该怎么做?3.我想知道客户端是否连接成功,我该怎么做?3.我想知道怎样重连服务器,我该怎么做?1.如何使用1.我想启动MQTT客户端,我该怎么做?try{IMqttClientclient=newMqttFactory().CreateMqttClient();varbuild=newMqttClientOptionsBuilder()//配

    2022年6月25日
    67
  • 纯css3手机页面图标样式代码

    全部图标:http://hovertree.com/texiao/css/19/先看效果:或者点这里:http://hovertree.com/texiao/css/19/hoverkico.htm简

    2021年12月21日
    53

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号