• 我的CSDN主页
  • My Python 学习个人备忘录
  • 我的博文推荐

罗马数字转整数


  CSDN“每日一练”(python)题目。

  1. 题目
  2. 罗马数字构造规则
  3. 代码运行效果
  4. 罗马数字字符输入判定
  5. 完整代码

练习题目

  题目标题是“罗马数字转整数”,而内容却是要求整转罗马数字。我就先做“罗马数字转整数的练习”,后面再做“整数转罗马数字”的练习。


罗马数字构造规则



上图勘误(图片截图于网络):
  • “3、表示为5的倍数的字母(V、L、D),不得重复。”我认为应该说成“表示为5的1*10幂次方的字母”更为准确。
  • “9不能表示为XIIII”应该是“9不能表示为VIIII”
  • 表格中的49是“IL”,“I”和“L”中间跨越了数位“X”,显然不全构造规则。应该是40(XL)+9(IX)=49(XLIX),所以49的罗马数字应该是“XLIX”。

回首页


代码运行效果






  打印整数前面多了四个空格,代码已更正



回首页


输入罗马数字字符合规验证

代码

# coding: utf-8def isRoman(s):'''罗马数字判定'''s = s.strip() #去除罗马数字字符串前后空格。for i in s: #含七个罗马数字构造字母以外的字符,为非。if i not in list('IVXLCDM'): #遍历罗马数字字符串return Falsefor i in ('I', 'X', 'C', 'M'): #检查可以重复字母是否超过三次。if i*4 in s: #模10位最多重复三次。    return Falsefor i in ('V', 'L', 'D'): #不可重复字母。if i*2 in s: #模5位不可重复。return Falsefor i in ('IL','IC', 'ID', 'IM', 'XD', 'XM'): #穷举不可为之“减”构造。if i in s:return Falsefor i in ('VX','VL', 'VC', 'VD', 'VM', 'LC', 'LD', 'LM', 'DM'): #穷举不可为之“减”构造。if i in s:return Falsefor i in ('IIV','IIX', 'XXL', 'XXC', 'CCD', 'DDM'): #穷举不可为之“减”构造(减两小的数)。if i in s:return Falsereturn Trues = 'IL', 'MMMIIVII', 'CIIX', 'CIX', 'YXIII', 'CVIII', 'MXLVIII'
for i in s:print(f'\n\n{"判定罗马数字":_^36}\n\n\n{" ":12}“{i}”:{isRoman(i)}\n\n\n{"The End":_^42}\n')

回首页


python完整代码

(如果从语句注释不能清楚作用,请评论区留言指教和探讨。

练习:罗马数字转整数相关推荐

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

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

  2. LeetCode(13.罗马数字转整数) JAVA Hashmap

    LeetCode(13.罗马数字转整数) JAVA Hashmap 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M. 字符 数值 I 1 V 5 X 10 L 50 C 100 D ...

  3. leetcode 两数之和 整数反转 回文数 罗马数字转整数

    1.两数之和 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标. 你可以假设每种输入只会对应一个答案.但是,你不能重复利用这个 ...

  4. LeetCode 13罗马数字转整数14最长公共前缀

    罗马数字转整数 上一题是整数转罗马数字,这题是罗马数字转整数.虽然是简单题,但我感觉其实有点烦. 上一次是数字转字符,这次是字符转数字,总的来说大体思想还是差不多的. 首先整个字符串可能是这样构造的: ...

  5. 罗马数字 java_【leetcode刷题】[简单]13.罗马数字转整数(roman to integer)-java

    罗马数字转整数 roman to integer 题目 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M. 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M ...

  6. 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 ...

  7. 20190913:(leetcode习题)罗马数字转整数

    罗马数字转整数 题目 大致思路 代码实现 题目 大致思路 跟上题一样,不需要思路,直接把各种情况列出来即可. 代码实现 package com.immunize.leetcode.romanTOINT ...

  8. 力扣——罗马数字转整数

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

  9. 每天Leetcode 刷题 初级算法篇-数学问题-罗马数字转整数

    题目要求: 力扣题解: 代码 /*** @program: mydemo* @description: 罗马数字转整数* @author: Mr.zeng* @create: 2021-02-24 0 ...

  10. leetcode 罗马数字与整数的转换算法

    介绍: 该算法是将罗马数字转换为整数,思路如下:比如IXX,使用临时变量temp保存上一个已经遍历的罗马数字,比如:遍历时是从后往前遍历的:1> 刚开始时,temp = 0; 遍历当前遍历到第一 ...

最新文章

  1. 最新NLP架构的直观解释:多任务学习– ERNIE 2.0(附链接)| CSDN博文精选
  2. 怎么git 自己建的服务器_Git服务器搭建,以及Git基本操作
  3. 【机器视觉】 dev_map_var算子
  4. Java GC系列(4):垃圾回收监视和分析
  5. 2016年《大数据》杂志调查问卷
  6. jsp+servlet+mysql实现的图书管理系统源码
  7. CentOS 7下无法启动网络(service network start)错误解决办法(转)
  8. WebSocket is already in CLOSING or CLOSED state
  9. 成长型思维方式对工程师的至关重要
  10. 服务器基本搭建(Windows系统阿里云服务器为例)-购买云服务器
  11. 番茄工作法总结-第七章:团队
  12. 从国足1:5输泰国看项目管理之项目失败责任该有谁负
  13. 【强化学习】模仿学习:行为克隆
  14. 天津市发布节能降碳工作方案,到2025年数据中心PUE不超过1.5
  15. 图像插值——线性差值
  16. 清甜女孩李斯霞 受邀担任第六季完美童模全球总决赛小主持人
  17. webservice wsdl2java_WebService学习笔记(三)wsdl2java代码生成
  18. 数据后台管理系统项目数据库表设计以及项目效果展示
  19. PHP项目中使用 Markdown编辑器
  20. 中控考勤机通过公网添加入异地中控系统

热门文章

  1. SVN添加忽略文件规则
  2. 破开C语言暗夜的第二道光 —— 数据与数据类型(1)
  3. LeetCode·718.最长重复子数组·动态规划
  4. 计算机房用什么气体灭火,计算机房(IDC机房)采用什么气体灭火系统最佳?
  5. ipad/iphone的浏览器,为啥可以播放优酷土豆等在线视频
  6. Drupal 常用模块汇总
  7. 比心app源码,html 获取时间
  8. 计算机等级考试Python二级
  9. 坚持记账的五大好处,你都知道吗?
  10. 记账的目的和好处是什么