尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
【LeetCode】13.罗马数字转整数
欢迎来到李耶的频道【LeetCode面试题】。罗马数字转整数 LeetCode 原题链接题目罗马数字包含以下七种字符IVXLCD和M。字符 数值I 1V 5X 10L 50C 100D 500M 1000例如罗马数字 2 写做II即为两个并列的 1。12 写做XII即为XII。27 写做XXVII即为XXVII。通常情况下罗马数字中小的数字在大的数字的右边。但也存在特例例如 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。给定一个罗马数字将其转换成整数。输入s III 输出3 输入s IV 输出4 输入s IX 输出9 输入s LVIII 输出58 解释L 50, V 5, III 3 输入s MCMXCIV 输出1994 解释M 1000, CM 900, XC 90, IV 4解法一直接遍历哈希表 减法规则思路建立一个哈希表存储字符到数值的映射。遍历字符串中的每个字符如果当前字符代表的数值小于下一个字符代表的数值说明遇到了减法规则如 IV此时从结果中减去当前字符的数值否则加上当前字符的数值。functionromanToInt(s){constmap{I:1,V:5,X:10,L:50,C:100,D:500,M:1000};letresult0;for(leti0;is.length;i){constcurrentmap[s[i]];constnexti1s.length?map[s[i1]]:0;if(currentnext){result-current;}else{resultcurrent;}}returnresult;}时间复杂度 / 空间复杂度O(n) / O(1)优势只需一次遍历代码简洁是面试中最推荐的写法解法二字符串替换法思路先将特殊的六种减法规则替换为对应的数值表示如 IV 替换为 “IIII”但数值上替换为特定标识然后统一处理。functionromanToInt(s){constmap{I:1,V:5,X:10,L:50,C:100,D:500,M:1000};// 将减法规则的两位字符替换为可处理的格式ss.replace(IV,IIII);ss.replace(IX,VIIII);ss.replace(XL,XXXX);ss.replace(XC,LXXXX);ss.replace(CD,CCCC);ss.replace(CM,DCCCC);letresult0;for(constcharofs){resultmap[char];}returnresult;}时间复杂度 / 空间复杂度O(n) / O(n)字符串替换创建新字符串优势将复杂的特殊规则转化为统一处理思路独特劣势字符串替换效率较低面试中不推荐解法对比解法时间 / 空间复杂度优势推荐指数直接遍历哈希表 减法规则O(n) / O(1)一次遍历空间最优⭐⭐⭐⭐⭐字符串替换法O(n) / O(n)思路独特易于理解特殊规则处理⭐⭐⭐扩展题整数转罗马数字给定一个整数将其转换为罗马数字。Excel 表列序号给定一个 Excel 表格中的列名称返回其对应的列序号如 A - 1, Z - 26, AA - 27。Excel 表列名称给定一个正整数返回它在 Excel 表格中对应的列名称。“多见者博多闻者智。” —— 桓宽《盐铁论》关注李耶每天一道面试题一起卷起来
RELATED

相关推荐

村务管理系统开发全解析:从业务架构到Spring Boot+Vue3技术实现

村务管理系统开发全解析:从业务架构到Spring Boot+Vue3技术实现

1. 项目概述与核心价值最近几年,我参与和观察了不少基层数字化项目,其中“村务管理系统”是一个高频出现但又常常被低估其复杂性的需求。乍一看,这个标题——“村务管理系统(源码开题)”——像是一个简单的学生毕业设计或课程作业。但当你真正…

📅 2026/10/7 1:45:45
LangGraph集成开源AI技能:构建模块化智能体工作流实战

LangGraph集成开源AI技能:构建模块化智能体工作流实战

1. 项目概述:为什么要把开源 Skills 塞进 LangGraph? 最近在折腾 LangGraph 项目时,我遇到了一个挺典型的瓶颈:项目本身的 Agent 框架很强大,能处理复杂的多步骤工作流,但每次想让它干点“新活”&#xff0…

📅 2026/10/5 8:59:50
盲盒小程序开发技术架构与高并发实战

盲盒小程序开发技术架构与高并发实战

1. 盲盒小程序开发的核心痛点解析去年帮客户做盲盒电商小程序时,我亲眼见证了一个团队因为没处理好并发请求,在活动上线当天服务器直接崩溃的惨剧。这种看似简单的抽盒交互背后,其实藏着不少技术深坑。盲盒类小程序与传统电商最大的区别在于其…

📅 2026/9/29 14:55:45
MORE NEWS

更多资讯

📰

hyperframes揭秘:Rust hyper库HTTP帧处理机制全解析

我第一次看到"hyperframes"这个词,是在翻hyper的源码目录时。当时的第一反应是:这难道又是什么新的前端框架?结果点进去一看,发现是Rust生态里最常被低估的一块底层机制——HTTP协议帧。说起来有点讽刺,绝大…

📰

3D展厅设计不是建模,而是空间叙事重构

1. 项目概述:这不是建模软件操作手册,而是一次展厅空间逻辑的重构“3D展厅展示模型设计与实践”——这八个字背后藏着一个被严重低估的行业真相:90%的所谓“3D展厅”,本质是把产品图贴在立方体墙面上的PPT升级版。真正能让人驻足、…

📰

矩阵分析期末高分攻略:基与过渡矩阵、Jordan标准型等八大题答题模板

简介:这份资源是重庆邮电大学研究生《矩阵分析》期末考卷的PDF,面向备考该课程的高校学生与需要系统梳理矩阵理论的学习者,可用于考前自测、对照复习与查漏补缺。试卷共八大题、满分100分,覆盖线性空间基与过渡矩阵、矩阵1范数与无…

📰

效率工具ponytail:像扎马尾一样轻松收集与整理零散信息

1. 项目从哪来:我自己先"扎起了马尾辫"ponytail 这个名字,第一次听说的人十有八九会以为是个发型教程。实际上它是个纯效率工具,正式点说是一款面向内容收集与快速整理的桌面端插件。我用了一个月,最大的感受是&#xf…

📰

用 PIL 画一套 120 个动态表情包:从 IP 引擎到微信上架的完整工程

t; 目标:为自创 IP「稳喵」产出 5 套收费表情(524120 个 GIF、共 720 帧),全部程序化绘制,零手绘、零外包,两天跑通从像素到微信表情开放平台的完整链路。本文记录整个工程的关键设计与踩坑。一、为什么用 …

📰

UDEC建模参数化:数据表与FISH函数告别手动改命令流

UDEC 建模这件事,我见过太多人把它做成了"文本编辑器里改数字"的体力活。一个三四十行的命令流,倾角改一次、间距改一次、材料号改七八处,改完自己都记不清哪个是原始版本;等到甲方要求换一组工况,翻回去又得…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬