罗马字符转整数(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

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • Linux下Redis的安装和部署

    Linux下Redis的安装和部署

    2021年10月27日
  • session.setAttribute()方法

    session.setAttribute()方法session.setAttribute(“sessionName”,Object);用来设置session值的,sessionName是名称,object是你要保存的对象。session.getAttribute(“sessionName”);用来得到对应名称的session值,即得到object对象,注意需要进行类型转换!session.setAttribute(“xyyyy”,xyyy);保存session.getAttribute(“xyyyy”);取得你可以把自己要的数据什么的放在se

    2022年10月17日
  • PhpSpreadsheet_中文在线集团简介

    PhpSpreadsheet_中文在线集团简介1、PhpSpreadsheet是什么PhpSpreadsheet是一个用纯PHP编写的库,提供了一组类,使您可以读取和写入不同的电子表格文件格式PhpSpreadsheet提供了丰富的API接口,可以设置诸多单元格以及文档属性,包括样式、图片、日期、函数等等诸多应用,总之你想要什么样的Excel表格,PhpSpreadsheet都能做到使用PhpSpreadsheet开发的PHP要求7.1或更高版本PhpSpreadsheet支持链式操作2、PhpSpreadsheet支持的文件格式

  • Android界面布局属性layout_gravity和gravity的区别

    Android界面布局属性layout_gravity和gravity的区别一、layout_gravity和gravity的作用1、android:layout_gravity是设置该控件相对于父容器对齐方式;2、android:gravity是设置子元素在该容器内的对齐方式。3、layout_gravity和gravity可以设置的值:top、bottom、left、right、center_vertical、fill_vertical、center_horizontal、fill_horizontal、center、fill、clip_vertical。(一个属性可以包

  • spi协议详解_一文看懂财务三张表

    spi协议详解_一文看懂财务三张表文章目录SPI协议简介4线还是3线?4种工作模式多种传输速率SPI协议的基本时序SPI协议的升级版FPGA实现SPI协议SPI和IIC的对比总结SPI协议简介板卡内不同芯片间通讯最常用的三种串行协议:UART、I2C、SPI,之前写过串口协议及其FPGA实现,今天我们来介绍SPI协议,SPI是SerialPerripheralInterface的简称,是由Motorola公司推出的一种高速、全双工的总线协议。与IIC类似,SPI也是采用主从方式工作,主机通常为FPGA、MCU或DSP等可编程控制

    2022年10月15日
  • 微信小程序—-全局变量「建议收藏」

    微信小程序—-全局变量「建议收藏」方法二:用引入js的方法定义全局变量实例:我在公用文件夹src下的js文件夹中创建的三个保存全局变量的文件:base64.js、config.js、data.js这三个文件作用:示例代码:使用方法:方法三:使用全局状态管理库微信小程序—-全局状态管理(便于全局埋点等操作)微信小程序—-redux在原生微信小程序的使用实例我的博客,欢迎交流!我的CSDN博客,欢迎交流!微信小程序专栏前端笔记专栏微信小程序实现部分高德地图功能的DEMO下载微信小…

发表回复

您的电子邮箱地址不会被公开。

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