前往小程序,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 删除。

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
更新Ubuntu软件源
原有的软件源的存储路径是/etc/apt/sources.list,文件内容如下。
全栈程序员站长
2022/09/15
1.4K0
更新Ubuntu软件源
Waydroid安装问题(依赖: python3-gbinder 但是它将不会被安装)
Waydroid 是一种基于容器的方法,用于在 Ubuntu 等常规 GNU/Linux 系统上启动完整的 Android 系统。
zhangrelay
2022/09/23
1.6K1
Ubuntu 18.04 清华更新源 Certificate verification failed
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/163166.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/15
1.6K0
WIN10下创建Ubuntu18.04子系统及安装图形界面
控制面板——>程序——>程序和功能——>启用或关闭Windows功能——>适用于Linux的Windows子系统——>确定 (然后重启)
好派笔记
2021/09/17
3.1K0
NVIDIA Jetson nano 开发板 Ubuntu系统更换镜像源
NVIDIA官方提供的Linux镜像版本为Ubuntu 18.04 LTS,镜像默认的是Ubuntu官方源,在国内使用该源下载程序速度较慢,所以需要更换。
Chuanrui 初见之旅
2022/11/14
1.5K0
Ubuntu 16.04 几个国内更新源
sudo cp /etc/apt/sources.list /etc/apt/sources.list.old
用户8710806
2021/06/09
2.8K0
Ubuntu - WSL系统更换国内源【WSL第三弹】
新安装了WSL-Ubuntu默认的apt源是国外的源。国内访问速度会很慢。所以更改国内源是非常有必要的。
无道
2019/11/13
35.7K0
Ubuntu - WSL系统更换国内源【WSL第三弹】
为ubuntu更新提速:将更新源改为国内源
环境说明: 系统版本:ubuntu 18.04 以下方法适用于ubuntu 18.0.4(版本号为bionic),若为ubuntu其他版本,将源链接中的bionic改为其他版本号即可:
知识分子没文化
2023/07/01
1.9K0
换源系列
注意事项 不支持Arm架构电脑 apt update && apt install apt-transport-https ca-certificates mv /etc/apt/sources.list /etc/apt/sources.list.bak apt update && apt upgrade apt install net-tools iputils-ping vim wget git unzip zip proxychains -y export https_proxy=http://19
XRSec
2022/02/11
2.6K0
Ubuntu更新软件源
默认情况下,Ubuntu的软件源在国内使用不是很理想,网速限制太大,造成一些较大的软件下载安装一直超时的情况出现。
大牧莫邪
2019/01/03
6.5K0
ubuntu16.04国内apt源以及官方源
替换写在/etc/apt目录的source.list文件 腾讯云 deb http://mirrors.tencentyun.com/ubuntu/ xenial main restricted un
禹都一只猫olei
2018/05/25
12.2K1
Windows下安装Ubuntu、图形界面、下载Android源码,看这一篇就够了
自己手里有一台Windows电脑,但是工作开发都是Linux系统下进行,想着给自己的Windows电脑安装Linux系统,说干就干。
八归少年
2022/10/08
2.1K0
Windows下安装Ubuntu、图形界面、下载Android源码,看这一篇就够了
ubuntu镜像下载_ubuntu最小镜像
PS:更新ubuntu 其他版本的源,直接修改ubuntu 的版本代号即可,例如 21.04 的版本代号是 hirsute 使用 vim 中的 :%s/[source]/[target]/g 全局替换文本
全栈程序员站长
2022/11/04
9K0
Ubuntu18.04安装教程
注:本篇文章以 Ubuntu18.04.1 的安装为例。 准备工作在其他系统上进行,我这里在 Windows10 上进行以下的三步。
全栈程序员站长
2022/08/19
3K0
Ubuntu18.04安装教程
wsl2相关
3. sudo apt update && sudo apt upgrade -y
用户8126523
2023/08/27
3240
Ubuntu18.04更换国内源
Ubuntu18.04更换国内源 原文地址:https://www.woozee.com.cn/article/25.html
程序员小涛
2020/12/03
2K0
Linux系统各发行版换国内yum或apt源,加速软件下载更新
Centos、Ubuntu、Debian、Fedora、OpenSUSE、FreeBSD系统换软件源
zeruns
2020/04/07
3.2K1
容器Docker学习系列四~源的修改增加效率
新公司现在开发环境都是在Liunx 下进行开发,系统是Ubuntu 18.4的版本.但是我们经常用Liunx系统的人就知道 我们经常用原生的源下载软件。速度不是很快有时候网络不好的情况下会导致下载几M的软件也需要花费很长的时间,这就给我们带来体验的痛苦,所以我们一般在安装好系统后会先进性Linux系统源的替换。
用户2196435
2018/09/20
8930
容器Docker学习系列四~源的修改增加效率
UOS (Ubuntu)系统更换国内源
今天在uos官网上下载UOS服务器版的操作系统,需要更换一下国内的源,下面就和大家一起分享一下。
熬夜的花斑狗
2022/01/10
10.9K0
Ubuntu自用软件记录
由于众所周知的原因,Ubuntu需要配置软件源才能正常的安装软件,于是安装Ubuntu后首先要做的就是更改软件源:
小黑鸭
2020/11/24
8610
推荐阅读
相关推荐
更新Ubuntu软件源
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验