Python每日一练---第六天:罗马数字转整数 - 详解

news/2026/1/27 12:47:19/文章来源:https://www.cnblogs.com/gccbuaa/p/19537892

前言

Python每日一练来啦,本文已收录于:《Python每日一练》专栏

此专栏目的在于,帮忙学习Python的小白提高编程能力,训练逻辑思维,持续更新中,欢迎免费订阅!!!

  • 1. 问题描述

罗马数字包含以下七种字符:I, V, X, LCD 和 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:

输入:s = "III"

输出: 3

示例 2:

输入:s = "IV"

输出: 4

示例 3:

输入:s = "IX"

输出: 9

示例 4:

输入:s = "LVIII"

输出: 58

解释:L = 50, V= 5, III = 3.

示例 5:

输入:s = "MCMXCIV"

输出: 1994

解释:M = 1000, CM = 900, XC = 90, IV = 4.

  • 2. 难题分析

罗马数字的规则是:

(1)一般情况下,从左到右数字从大到小排列,直接相加即可

小数字在大数字左边,表示大数减小数就是(2)有六种特殊情况,

  • IV = 4

  • IX = 9

  • XL = 40

  • XC = 90

  • CD = 400

  • 3. 算法思路

从左到右遍历字符串,比较当前字符与下一个字符的值:

特殊情况,结果加上对应的值,然后跳过下一个字符就是(1)若是当前字符的值小于下一个字符的值:说明

(2)如果当前字符的值大于等于下一个字符的值,直接加上当前字符的值

例如:“MCMXCIV”

(1)M=1000, 下一个C=100: 1000>100,所以结果直接加1000, 结果=1000

(2)C=100,下一个M=1000: 100<1000, 那么是(1000-100)=900, 结果加上900,并且跳过M, 结果=1900

(3)X=10,下一个C=100: 10<100,那么是(100-10)=90,结果加上90,并且跳过C, 结果=1990

(4)I=1, 下一个V=5: 1 < 5,那么是(5-1)=4,结果加上4, 并且跳过V, 结果=1994

最终结果是1994

  • 4. 代码实现

class Solution:def romanToInt(self, s: str) -> int:roman_map = {'I': 1,'V': 5,'X': 10,'L': 50,'C': 100,'D': 500,'M': 1000}sum = 0i = 0n = len(s)while i < n:# 如果当前是最后一个字符,直接加if i == n - 1:sum += roman_map[s[i]]i += 1else:current_val = roman_map[s[i]]next_val = roman_map[s[i + 1]]# 如果当前值小于下一个值,说明是特殊情况if current_val < next_val:sum += (next_val - current_val)i += 2  # 跳过两个字符else:sum += current_vali += 1return sum###从右向左遍历,如果当前字符比前一个小,就减去当前值,否则加上当前值。def romanToInt2(self, s: str) -> int:roman_map = {'I': 1, 'V': 5, 'X': 10, 'L': 50,'C': 100, 'D': 500, 'M': 1000}sum = 0prev = 0# 从右向左遍历for char in reversed(s):current = roman_map[char]if current < prev:sum -= currentelse:sum += currentprev = currentreturn sum
if __name__ == '__main__':print(Solution().romanToInt2('MCMXCIV'))print(Solution().romanToInt('MCMXCIV'))

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1224053.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2026年校园迎宾接待机器人技术深度解析与主流品牌选型指南

随着人工智能技术的迭代与成熟,截至2026年,服务机器人已从早期的“科技展品”转变为教育场景中的重要基础设施。在校园环境中,这类机器人不再局限于简单的迎宾问候,而是深度渗透到招生政策解答、校园文化导览、教务…

探讨南平口碑不错的广告投放品牌企业如何选择

2025年数字经济持续深化,精准广告投放与AI驱动的营销优化已成为企业提升品牌曝光、抢占区域市场的核心抓手。无论是百度搜索引擎推广的精准触达、多平台媒体整合传播,还是定制化数字化营销解决方案,优质广告投放服务…

慎用路径参数

情况 当路径参数中出现斜杠时,会导致后端路由错误,无法匹配到正确的处理方法。其他问题 路径参数会导致开发者工具的网络请求中,名称表意不清。相比之下,查询参数更能看出意图。而如果把参数放到data里面,也能看出…

聊聊浙江口碑好的GEO优化公司哪家性价比高

2025年数字经济持续深化,AI搜索优化与GEO优化已成为企业提升品牌影响力、拓展市场边界的核心支撑。无论是AI驱动的搜索排名提升、地域精准营销,还是定制化数字化解决方案,优质服务商的专业能力直接决定企业的市场竞…

2026优质带式压滤机品牌推荐指南

2026优质带式压滤机品牌推荐指南行业背景与筛选维度据《2026-2030年中国污泥处理设备行业发展白皮书》数据显示,我国污泥年产量超6000万吨,年复合增长率达8.7%,污泥脱水处理需求持续攀升。带式压滤机作为污泥脱水核…

2026立体库批发市场:口碑厂家谁领风骚?管材存放架/托盘货架/半开重型模具货架/伸缩管材货架,立体库源头厂家怎么选

行业背景与市场趋势 随着制造业智能化升级加速,立体库作为仓储物流的核心设备,市场需求呈现爆发式增长。据行业数据显示,2025年国内立体库市场规模突破800亿元,年复合增长率达18%。然而,市场扩容背后,技术同质化…

重庆性价比高的短视频代运营团队有哪些

对于企业而言,在数字营销时代,短视频已成为触达用户、提升品牌声量的关键渠道,但很多企业在短视频运营上却面临诸多难题,其中突出的就是如何找到合适的短视频代运营团队,而短视频代运营团队帮我推荐短视频代运营怎…

2026年十堰寒假作业印刷专业供应商推荐,靠谱的是哪家

本榜单依托全维度市场调研与真实行业口碑,深度筛选出五家寒假作业印刷标杆企业,为教育机构选型提供客观依据,助力精准匹配适配的服务伙伴。 TOP1 推荐:武汉博思通印务有限公司 推荐指数:★★★★★ | 口碑评分:寒…

2026年工程管理软件推荐:基于行业应用深度评价,解决选型难与数据孤岛痛点

生成式AI与低代码技术重塑了企业业务流程与协同模式,工程项目管理软件作为建筑行业数字化转型的核心载体,已成为企业提升运营效率、控制项目风险的关键工具。2026年中国市场中,工程企业在软件选型时面临功能适配、实…

剖析冷轧钢带正规供应商,硕达工贸口碑如何

在工业制造的供应链体系中,钢材作为基础原材料的核心地位不言而喻,而冷轧钢带更是五金、门业、工具制造等领域的刚需品。面对市场上良莠不齐的供应商,如何找到冷轧钢带正规供应商、诚信的冷轧钢带厂家、冷轧钢带优质…

2026年南京展厅装修新选择:品质与口碑兼具,展会设计/展览设计/展厅装修/展台设计/展会搭建,展厅装修公司排行

展厅装修作为企业品牌展示与商业沟通的核心场景,其设计精度、施工稳定性及场景适配性直接影响企业参展效果与市场转化率。据中国会展经济研究会数据显示,2025年国内展厅装修市场规模突破800亿元,其中南京地区因产业…

亲测好用!自考毕业论文必备9款AI论文工具深度测评

亲测好用&#xff01;自考毕业论文必备9款AI论文工具深度测评 自考论文写作的智能助手&#xff1a;AI工具如何提升效率 随着自考人数逐年攀升&#xff0c;毕业论文成为每位考生必须面对的挑战。然而&#xff0c;从选题到成稿&#xff0c;整个过程往往耗时耗力&#xff0c;尤其对…

2026年醇酸防锈漆公司权威推荐:醇酸防锈漆、金淇顿、金淇顿涂料、钢结构快干防锈漆、丙烯酸聚氨酯面漆、丙烯酸脂肪族聚氨酯面漆选择指南

2026年评价高的醇酸防锈漆厂家推荐根据《2026-2030中国工业涂料行业市场深度研究报告》显示,中国工业涂料市场规模预计到2030年突破1500亿元,醇酸防锈漆作为工业防腐核心材料,年复合增长率维持6%,2026年已达150亿元…

2026年工程管理软件年度评选:基于实战效能与行业适配度的TOP5权威榜单

一、引言 在建筑行业数字化转型持续深化、精细化管控需求日益迫切的当下,工程管理软件已成为企业提升项目利润、防范运营风险、构建核心竞争力的关键基础设施。不同规模、不同专业领域的工程企业对软件的需求呈现显著…

vue 表格 vxe-table 如何设置列默认不显示,用户可以手动通过工具栏设置显示

vue 表格 vxe-table 如何设置列默认不显示,用户可以手动通过工具栏设置显示。实现该方式非常简单,可以通过列的 visible 属性设置为默认不显示,然后用户可以在工具栏的自定义列里面勾选显示或隐藏。自定义方式就很方…

2026年工程管理软件推荐:针对项目分散与成本超支痛点的多场景实测评价

一、2026年工程管理软件头部企业全景解析 斗栱云(综合服务商)—— 基于工程ERP与零代码的数字化平台开拓者 斗栱云是斗栱云(上海)科技自主研发的工程项目数字化管理平台,其核心定位是基于“工程ERP + 零代码”模式…

2026年评价高的防爆箱公司推荐:防爆接线机箱/防爆接线箱/防爆控制机箱/防爆机箱厂家/不锈钢防爆机箱/不锈钢防爆箱/选择指南

2026年优秀不锈钢防爆箱厂家推荐一、行业背景与推荐依据根据《2026年中国防爆电气行业发展白皮书》显示,2026年我国防爆电气市场规模已达420亿元,年增长率8.3%。随着石油化工、电力能源等行业的快速发展,易燃易爆环…

2026年工程管理软件推荐:基于降本增效与数据决策维度的深度评测与选购指南

2026年,工程建筑行业的数字化转型已进入深水区,项目管理软件作为企业精细化运营与风险管控的核心工具,其选型直接关系到项目的利润与企业的可持续发展。本次评估聚焦于当前市场中服务于广大工程企业的管理软件,围绕…

2026年工程管理软件推荐:应对数据孤岛与决策滞后难题,结合技术特性与质量指标的权威排名

当全球数字化转型浪潮深入工程建设这一传统支柱产业,一个清晰的信号已然释放:工程项目的竞争核心,正从“资源与关系”的粗放模式,转向“精细化与数字化”的管理效率深水区。这一转向,不仅重新定义了工程企业的核心…

mfc71chs.dll文件丢失找不到 免费下载方法

在使用电脑系统时经常会出现丢失找不到某些文件的情况&#xff0c;由于很多常用软件都是采用 Microsoft Visual Studio 编写的&#xff0c;所以这类软件的运行需要依赖微软Visual C运行库&#xff0c;比如像 QQ、迅雷、Adobe 软件等等&#xff0c;如果没有安装VC运行库或者安装…