前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >罗马字符转整数(python)

罗马字符转整数(python)

作者头像
全栈程序员站长
发布于 2022-11-10 06:53:43
发布于 2022-11-10 06:53:43
75100
代码可运行
举报
运行总次数:0
代码可运行

大家好,又见面了,我是你们的朋友全栈君。

题目:

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年9月28日 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
深入浅出 Eslint,告别 Lint 恐惧症
对于 Lint 配置的不了解导致项目中总是会莫名其妙的提示报错,这应该是大多数同学面临的窘境。
19组清风
2022/09/27
2K0
深入浅出 Eslint,告别 Lint 恐惧症
[eslint配置和rule规则解释
ESLint 是一个ECMAScript/JavaScript 语法规则和代码风格的检查工具,它的目标是保证代码的一致性和避免错误。
用户4792657
2022/07/06
3.1K0
ESLint 配置入门
ESLint 是一款检查 JavaScript 程序是否符合特定的规则的工具。比如字符串用单引号还是双引号,tab 缩进用 2 个空格还是 4 个空格还是其他,这些都可以用 ESLint 来规定。
前端西瓜哥
2022/12/21
1.6K0
ESLint 配置入门
eslint 从0到1
ESlint 可组装的javaScript和JSX检查工具, 提供一个插件化的javascript代码检测工具。
copy_left
2021/06/29
1.7K0
项目eslint从零到一
eslint在项目里并不太陌生,通常在使用脚手架时,会默认让你安装执行的eslint,当公司项目比较规范时,常常会配置组内统一的eslint规则,eslint帮助我们在开发阶段检查代码是否符合标准规范,统一了我们组内不同项目代码风格,也可以帮助我们养成良好的代码习惯,统一eslint对于项目的可维护性必不可少,今天我们一起学习一下如果改进你项目的规范。
Maic
2022/07/28
1.6K0
项目eslint从零到一
【TypeScript】014-工程相关
2019 年 1 月,TypeScirpt 官方决定全面采用 ESLint 作为代码检查的工具,并创建了一个新项目 typescript-eslint,提供了 TypeScript 文件的解析器 @typescript-eslint/parser 和相关的配置选项 @typescript-eslint/eslint-plugin 等。而之前的两个 lint 解决方案都将弃用:
訾博ZiBo
2025/01/06
1710
Eslint使用入门指南
ESLint最初是由Nicholas C. Zakas 于2013年6月创建的开源项目。它的目标是提供一个插件化的javascript代码检测工具。
Snine
2022/02/21
2.2K0
Eslint该如何配置?Eslint使用以及相关配置说明
Eslint在过往接触过的很多开源项目内都有它的身影,习惯一个人写代码了,总觉得它可有可无,但是归根结底,好处还是很多的。
房东的狗丶
2023/02/17
3.6K0
Eslint该如何配置?Eslint使用以及相关配置说明
代码规范之-理解ESLint、Prettier、EditorConfig
团队多人协同开发项目中困恼团队管理一个很大的问题是:无可避免地会出现每个开发者编码习惯不同、代码风格迥异,为了代码高可用、可维护性, 如何从项目管理上尽量统一和规范代码呢?
coder_koala
2020/12/17
3K0
代码规范之-理解ESLint、Prettier、EditorConfig
React 开发常用 eslint + Prettier vscode 配置方案
要知道 eslint 和 Prettier 所做的事情都是基于编辑器支持的,所以我们做的所有的事情基本都是做给编辑器看的,配置的所有参数配置也是为了编辑器配置的。
fastmock
2022/07/13
3.3K0
用TypeScript编写React的最佳实践
如今, React 和 TypeScript 是许多开发人员正在使用的两种很棒的技术。但是把他们结合起来使用就变得很棘手了,有时很难找到正确的答案。不要担心,本文我们来总结一下两者结合使用的最佳实践。
ConardLi
2020/06/04
4.8K0
编写自己的 TypeScript CLI
Lighthouse 是用于深入了解网页性能的最流行的开发工具之一,它提供了一个CLI 和 Node 模块,因此我们可以以编程方式运行它。但是,如果您在同一个网页上多次运行 LIghthouse,您会发现它的分数会有所不同,那是因为存在已知的可变性。影响 Lighthouse 可变性的因素有很多,处理差异的推荐策略之一是多次运行 Lighthouse。
unkown
2022/02/25
2.4K0
编写自己的 TypeScript CLI
【JS】308- 深入理解ESLint
小沈是一个刚刚开始工作的前端实习生,第一次进行团队开发,难免有些紧张。在导师的安排下,拿到了项目的 git 权限,开始进行 clone。
pingan8787
2019/08/06
1.3K0
深入浅出 TypeScript
本文是阅读小册 「《深入浅出 TypeScript》」 的阅读笔记,对TypeScript感兴趣的同学请继续阅读吧。
chuckQu
2022/08/19
2.9K0
关于eslint
ESLint 是一个用来识别 ECMAScript/JavaScript 并且按照规则给出报告的代码检测工具,是一个用来检查代码的工具。
xyzzz
2020/12/21
3.1K0
ESLint静态代码检查
ESLint是一个用来识别 ECMAScript 并且按照规则给出报告的代码检测工具,使用它可以避免低级错误和统一代码的风格。如果每次在代码提交之前都进行一次eslint代码检查,就不会因为某个字段未定义为undefined或null这样的错误而导致服务崩溃,可以有效的控制项目代码的质量。
xiangzhihong
2022/11/30
2.2K0
关于eslint使用规则,和各种报错对应规则。
ESLint 由 JavaScript 红宝书 作者 Nicholas C. Zakas 编写, 2013 年发布第一个版本。 NCZ 的初衷不是重复造一个轮子,而是在实际需求得不到 JSHint 团队响应 的情况下做出的选择:以可扩展、每条规则独立、不内置编码风格为理念编写一个 lint 工具。
双愚
2018/05/09
8.9K0
优雅的在vue中使用TypeScript
近几年前端对 TypeScript 的呼声越来越高,Typescript 也成为了前端必备的技能。TypeScript 是 JS 类型的超集,并支持了泛型、类型、命名空间、枚举等特性,弥补了 JS 在大型应用开发中的不足。
前端森林
2020/04/23
2.1K0
优雅的在vue中使用TypeScript
帮助编写异步代码的ESLint规则
调试 JavaScript 中的异步代码有时就像在雷区中穿梭。你不知道 console.log 会在何时何地打印出来,也不知道代码是如何执行的。
chuckQu
2024/01/22
3200
帮助编写异步代码的ESLint规则
从 ESLint 开始,说透我如何在团队项目中基于 Vue 做代码校验
最近遇到了一个老项目,比较有意思的是这个项目集前后端的代码于一起,而后端也会去修改前端代码,所以就出现了后端用 IntelliJ IDEA 来开发前端项目,而前端用 VSCode 来开发前端项目的情况。于是乎,出现了代码规范的问题,所以就有了这篇文章,整理了一下前端代码校验以及在 Vue 项目中的实践。
用户4456933
2021/07/12
2.5K0
从 ESLint 开始,说透我如何在团队项目中基于 Vue 做代码校验
相关推荐
深入浅出 Eslint,告别 Lint 恐惧症
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验