python学习笔记5-罗马数字转整数

题目:

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

代码:

def romanToInt(self, s:str) -> int:Roman={'I':1,'V':5,'X':10,'L':50,'C':100,'D':500,'M':1000}I=0for index in range(len(s)-1):if Roman[s[index]]<Roman[s[index]]:I=I-Roman[s[index]]else:I=I+Roman[s[index]]return I+Roman[s[-1]]

运行结果:


总结:我觉得这个代码还不够完善,因为那个特殊规则只适用于六种情况,但是代码中并没有考虑到,
希望有建议的小伙伴在评论区留言哦,让我们一起进步吧^^

python学习笔记5-罗马数字转整数相关推荐

  1. python学习笔记,初学者Python3

    Python学习笔记 不推荐将python作为主力语言,但推荐作为一个辅助语言,用于日常的一些小的任务 python目前主要的应用场景: 1.机器学习,人工智能 2.爬虫 3.数据分析 4.自动化,运 ...

  2. Python学习笔记:第九站 一串连一串

    Python学习笔记 文章目录 Python学习笔记 第九站 一串连一串 1. 字符串的驻留机制 2. 字符串的常用操作 3. 字符串的比较 4. 字符串的切片操作 5. 格式化字符串 6. 字符串的 ...

  3. 廖Python学习笔记一

    1. 廖Python学习笔记 大的分类 如函数 用二级标题,下面的用三级 如输入输出 1.1.1. 输入输出 1.1.1.1. 输出 用 print() 在括号里加上字符串,就可以向屏幕上输出指定的文 ...

  4. OpenCV之Python学习笔记(1)(2): 图像的载入、显示和保存 图像元素的访问、通道分离与合并

    OpenCV之Python学习笔记 一直都在用Python+OpenCV做一些算法的原型.本来想留下发布一些文章的,可是整理一下就有点无奈了,都是写零散不成系统的小片段.现在看到一本国外的新书< ...

  5. Python学习笔记:Day 3编写ORM

    前言 最近在学习深度学习,已经跑出了几个模型,但Pyhton的基础不够扎实,因此,开始补习Python了,大家都推荐廖雪峰的课程,因此,开始了学习,但光学有没有用,还要和大家讨论一下,因此,写下这些帖 ...

  6. Python学习笔记:网络编程

    前言 最近在学习深度学习,已经跑出了几个模型,但Pyhton的基础不够扎实,因此,开始补习Python了,大家都推荐廖雪峰的课程,因此,开始了学习,但光学有没有用,还要和大家讨论一下,因此,写下这些帖 ...

  7. Python学习笔记:第三方模块2

    前言 最近在学习深度学习,已经跑出了几个模型,但Pyhton的基础不够扎实,因此,开始补习Python了,大家都推荐廖雪峰的课程,因此,开始了学习,但光学有没有用,还要和大家讨论一下,因此,写下这些帖 ...

  8. Python学习笔记:常用内建模块3:struct

    前言 最近在学习深度学习,已经跑出了几个模型,但Pyhton的基础不够扎实,因此,开始补习Python了,大家都推荐廖雪峰的课程,因此,开始了学习,但光学有没有用,还要和大家讨论一下,因此,写下这些帖 ...

  9. Python学习笔记:创建分数类

    Python学习笔记:创建分数类 1.编写创建分数类.py # 创建分数类from math import gcd# 定义分数类 class Fraction: def __init__(self, ...

最新文章

  1. 如何到top5%?NLP-情感分析实战训练来教你!
  2. HDUOJ----1166敌兵布阵(线段树单点更新)
  3. 20145209 《信息安全系统设计基础》第7周学习总结
  4. 昨日参加Symantec公司用户大会
  5. 环境在c盘_如何给女朋友解释为什么 Windows 上面的软件都把自己安装在 C 盘
  6. ds18b20温度传感器驱动编写
  7. btoa java,JavaScript用btoa和atob来编码解码Base64
  8. 【bzoj1146】 [CTSC2008]网络管理Network【树链剖分+树套树+二分 线段树套Treap】
  9. Android--xml布局文件中使用include
  10. 关于win32程序如何共享数据
  11. 中国电信5G技术承载网络
  12. AMOS分析技术:软件安装及菜单功能介绍;这次是视频教程
  13. 记事本新建一个html文件,怎样使用记事本建立新文件 怎么在电脑中新建一个记事本 啊?...
  14. 飞机机器人特摄片_机器人大战怪兽-好莱坞的特摄片「环太平洋」
  15. Python下载与安装,以及下载安装编辑器Geany且通过Geany编辑运行第一个程序Hello world.
  16. python和按键精灵自动化测试_自动化测试程序和按键精灵
  17. 人工智能助力危化品企业生产安全
  18. 有能干到退休的程序员吗?
  19. 几个PPT字体排版技巧,点进来就能学到新知识
  20. 探索ESP8285(2)搭建Windows版MQTT服务器

热门文章

  1. 分布式系统原理-世界上只有一种共识算法,那就是Paxos
  2. java装箱拆箱_Java中的自动装箱与拆箱
  3. 传统企业的网络营销问题和解决方案
  4. 安装程序无法初始化。请下载Adobe Support Advisor检测该问题
  5. 怎么计算管道的大小C语言,已知液面高度怎么计算圆形管道内液体截面积(圆弧面)的方法...
  6. buffer cache中的LRU链+
  7. python列表去重计数
  8. 支付宝小程序批量下载图片
  9. Java关键字super解释
  10. git 上传代码步骤