练习:罗马数字转整数
- 我的CSDN主页
- My Python 学习个人备忘录
- 我的博文推荐
罗马数字转整数
CSDN“每日一练”(python)题目。
- 题目
- 罗马数字构造规则
- 代码运行效果
- 罗马数字字符输入判定
- 完整代码
练习题目
题目标题是“罗马数字转整数”,而内容却是要求整转罗马数字。我就先做“罗马数字转整数的练习”,后面再做“整数转罗马数字”的练习。
罗马数字构造规则
上图勘误(图片截图于网络):
- “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 题目 2 解析 1 题目 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M. 字符 数值I 1 V 5 ...
- 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 ...
- leetcode 两数之和 整数反转 回文数 罗马数字转整数
1.两数之和 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标. 你可以假设每种输入只会对应一个答案.但是,你不能重复利用这个 ...
- LeetCode 13罗马数字转整数14最长公共前缀
罗马数字转整数 上一题是整数转罗马数字,这题是罗马数字转整数.虽然是简单题,但我感觉其实有点烦. 上一次是数字转字符,这次是字符转数字,总的来说大体思想还是差不多的. 首先整个字符串可能是这样构造的: ...
- 罗马数字 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 ...
- 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 ...
- 20190913:(leetcode习题)罗马数字转整数
罗马数字转整数 题目 大致思路 代码实现 题目 大致思路 跟上题一样,不需要思路,直接把各种情况列出来即可. 代码实现 package com.immunize.leetcode.romanTOINT ...
- 力扣——罗马数字转整数
罗马数字转整数 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M. 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000 例如, 罗马数字 2 写做 I ...
- 每天Leetcode 刷题 初级算法篇-数学问题-罗马数字转整数
题目要求: 力扣题解: 代码 /*** @program: mydemo* @description: 罗马数字转整数* @author: Mr.zeng* @create: 2021-02-24 0 ...
- leetcode 罗马数字与整数的转换算法
介绍: 该算法是将罗马数字转换为整数,思路如下:比如IXX,使用临时变量temp保存上一个已经遍历的罗马数字,比如:遍历时是从后往前遍历的:1> 刚开始时,temp = 0; 遍历当前遍历到第一 ...
最新文章
- 最新NLP架构的直观解释:多任务学习– ERNIE 2.0(附链接)| CSDN博文精选
- 怎么git 自己建的服务器_Git服务器搭建,以及Git基本操作
- 【机器视觉】 dev_map_var算子
- Java GC系列(4):垃圾回收监视和分析
- 2016年《大数据》杂志调查问卷
- jsp+servlet+mysql实现的图书管理系统源码
- CentOS 7下无法启动网络(service network start)错误解决办法(转)
- WebSocket is already in CLOSING or CLOSED state
- 成长型思维方式对工程师的至关重要
- 服务器基本搭建(Windows系统阿里云服务器为例)-购买云服务器
- 番茄工作法总结-第七章:团队
- 从国足1:5输泰国看项目管理之项目失败责任该有谁负
- 【强化学习】模仿学习:行为克隆
- 天津市发布节能降碳工作方案,到2025年数据中心PUE不超过1.5
- 图像插值——线性差值
- 清甜女孩李斯霞 受邀担任第六季完美童模全球总决赛小主持人
- webservice wsdl2java_WebService学习笔记(三)wsdl2java代码生成
- 数据后台管理系统项目数据库表设计以及项目效果展示
- PHP项目中使用 Markdown编辑器
- 中控考勤机通过公网添加入异地中控系统
热门文章
微信改版,加星标不迷路! 每日一算法-罗马数字转整数 作者:阿广 阅读目录 1 题目 2 解析 1 题目 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M. 字符 数值I 1 V 5 ...
LeetCode(13.罗马数字转整数) JAVA Hashmap 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M. 字符 数值 I 1 V 5 X 10 L 50 C 100 D ...
1.两数之和 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标. 你可以假设每种输入只会对应一个答案.但是,你不能重复利用这个 ...
罗马数字转整数 上一题是整数转罗马数字,这题是罗马数字转整数.虽然是简单题,但我感觉其实有点烦. 上一次是数字转字符,这次是字符转数字,总的来说大体思想还是差不多的. 首先整个字符串可能是这样构造的: ...
罗马数字转整数 roman to integer 题目 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M. 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M ...
罗马数字转整数 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M. 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000 例如, 罗马数字 2 写做 I ...
罗马数字转整数 题目 大致思路 代码实现 题目 大致思路 跟上题一样,不需要思路,直接把各种情况列出来即可. 代码实现 package com.immunize.leetcode.romanTOINT ...
罗马数字转整数 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M. 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000 例如, 罗马数字 2 写做 I ...
题目要求: 力扣题解: 代码 /*** @program: mydemo* @description: 罗马数字转整数* @author: Mr.zeng* @create: 2021-02-24 0 ...
介绍: 该算法是将罗马数字转换为整数,思路如下:比如IXX,使用临时变量temp保存上一个已经遍历的罗马数字,比如:遍历时是从后往前遍历的:1> 刚开始时,temp = 0; 遍历当前遍历到第一 ...