罗马数字包含以下七种字符: 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 的范围内。

这是一道很简单的题目,因为是给出罗马数字计算,所以至少要遍历一遍是免不了的。只要我们赋给相应字符串于整数,然后注意其中特殊情况的减法相当于两个字符为一个数字,就很容易实现计算,下面直接给出代码。

class Solution(object):def romanToInt(self, s):a = 0n = len(s)i= 0dict1 = {'I': 1, 'V': 5, 'X': 10, 'L': 50, 'C': 100, 'D': 500, 'M': 1000}""":type s: str:rtype: int"""while(i<=n-1):if i < n-1 :                      if (s[i] == 'I' and (s[i + 1] == 'V' or s[i + 1] == 'X')):a = a + (-dict1[s[i]]) + dict1[s[i + 1]]i = i + 2continueif (s[i] == 'X' and (s[i + 1] == 'L' or s[i + 1] == 'C')):a = a + (-dict1[s[i]]) + dict1[s[i + 1]]i = i + 2continueif (s[i] == 'C' and (s[i + 1] == 'D' or s[i + 1] == 'M')):a = a + (-dict1[s[i]]) + dict1[s[i + 1]]i = i + 2continuea = a + dict1[s[i]]i= i+1else:a = a + dict1[s[i]]i= i+1return a

请注意代码中

里面的判断条件没有到输入字符串的最后一个原因是,我们要扫描每个元素的后一个元素,如果设置到了末尾元素,那么元组就会越界,在python3里会报错。

将给出的整数x翻转_每日一题:1.罗马数字转整数相关推荐

  1. 【每日一算法】罗马数字转整数

    微信改版,加星标不迷路! 每日一算法-罗马数字转整数 作者:阿广 阅读目录 1 题目 2 解析 1 题目 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M. 字符 数值I 1 V 5 ...

  2. 和与余数的和同余理解_每日一题 | 第38期:数量关系之余数特性

    从今天起"每日一题"栏目就正式更新啦~ 由福瑞和教育的主讲老师 每天给大家带来公考不同考试版块的干货资料! 旨在潜移默化中给大家培养公考解题思维,提高做题速度! 大家遇到不明白的题 ...

  3. 山体等高线怎么看_每日一题 | 此处向斜山,你看出来了吗?

    每日一题 | 此处向斜山,你看出来了吗? (2018·江苏高考)如图为某区域地质简图.该区沉积地层有Q.P.C.D.S2.S1,其年代依次变老.读图回答1-2题. 1.从甲地到乙地的地形地质剖面示意图 ...

  4. LeetCode题 - 13 罗马数字转整数

    罗马数字转整数 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M. 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000 例如, 罗马数字 2 写做 I ...

  5. 递增的整数序列链表的插入_每日算法题 | 剑指offer 链表专题 (5)链表中倒数第k个节点...

    点击上方"Jerry的算法和NLP",选择"星标"公众号 重磅干货,第一时间送达 题目 链表中倒数第k个节点 题目要求 输入一个链表的头结点,从尾到头反过来打印 ...

  6. python3不再区分整数和长整数_【判断题】Python3中不再区分整数和长整数,统一为int。...

    [判断题]Python3中不再区分整数和长整数,统一为int. 更多相关问题 [多选] 热轧钢材轧后冷却的目的(). [多选] 粗轧最大侧压量受()等工况条件的限制. [判断题] 电压互感器的额定二次 ...

  7. python整数运算定律_四年级数学知识点总结-05整数四则运算及定律

    撰文:喵喵君 审校:Mystic 一.整数加法 1.意义:把两个或多个数合并起来的运算叫做加法: 2.各部分关系:加法运算中,用加号连接起来的数称作加数,加数的总和或者等号后面的数称作和: 3.加数+ ...

  8. source tree 递归子模块_每日刷题3--漫谈二叉树的递归遍历

    leetcode 特点1 虽然是从root开始,但是 严重依赖从下到上的反馈的数据 ,例如求tree的高度 题目1 最近公共祖先(LCA) 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先. 百 ...

  9. Leetcode 25 K个一组翻转链表 (每日一题 20210719)

    给你一个链表,每 k 个节点一组进行翻转,请你返回翻转后的链表.k 是一个正整数,它的值小于或等于链表的长度.如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保持原有顺序.进阶:你可以设计一个只 ...

最新文章

  1. 帆软所有销量为0的显示为空值_市场上最流行的9款跨境电商亚马逊销量预估工具精准度报告详解!...
  2. co88 sap 实际结算_SAP中有关差异的一些概念
  3. 理解 CSS 布局和块级格式上下文
  4. 卸载linux系统装win,如何在计算机上删除 Linux 并安装 Windows
  5. .net程序员的盲点(八):泛型
  6. Mac 完全卸载 Java
  7. Windows phone 8 学习笔记(4) 应用的启动
  8. MATLAB统计与回归
  9. sqlmap的简单用法
  10. Qt学习笔记-Qt中OpenGL的使用
  11. 石河子大学计算机学院宿舍,对于那些想去211石河子大学的同学给你一点建议
  12. hudson构建配置
  13. 洛谷-P1425-小鱼的游泳时间
  14. roce流量抓包 linux,roce性能测试方法
  15. 软件测试可以分为哪几个类型?
  16. 哪款蓝牙耳机适合吃鸡?盘点2022适合苹果吃鸡的蓝牙耳机
  17. 国企面试-260题-单选题 下列哪组成语反映了同一种人际关系: A 琴瑟和鸣 破镜重圆 B 负荆请罪 载舟覆舟 C 结草衔环 青梅竹马 D 相濡以沫 舐犊情深
  18. 小红书品牌投放监测之竞品对比
  19. 【Python】《Python语言程序设计》(嵩天 、黄天羽 、礼欣)测验单项选择题答案与解析合辑
  20. 住院管理系统数据库课程设计

热门文章

  1. 兔子不吃窝边草,跳槽不跳窝边槽。。。
  2. 软件项目获取用户需求的沟通技巧(摘自IT168技术频道)
  3. JAVA 将图片转换为Base64编码
  4. 太智能了!国内首批自动驾驶出租车即将在长沙上路!
  5. zabbix自定义监控脚本,显示权限不足
  6. [js高手之路]打造通用的匀速运动框架
  7. Android PullToRefreshListView设置各个item之间的间距
  8. cmd应用基础 扫盲教程
  9. 2016,成为更好的自己
  10. Azure Remoteapp 使用指南