leetCode算法—13. 罗马数字转整数

13. 罗马数字转整数

难度:简单 *
罗马数字包含以下七种字符: 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:
    输入: 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.

  • 提示:
    1 <= s.length <= 15 s 仅含字符 (‘I’, ‘V’, ‘X’, ‘L’, ‘C’, ‘D’, ‘M’) 题目数据保证
    s 是一个有效的罗马数字,且表示整数在范围 [1, 3999] 内 题目所给测试用例皆符合罗马数字书写规则,不会出现跨位等情况。 IL 和
    IM 这样的例子并不符合题目要求,49 应该写作 XLIX,999 应该写作 CMXCIX 。 关于罗马数字的详尽书写规则,可以参考
    罗马数字 - Mathematics 。

解法

const romanToInt = (s) => {let num = 0const dict = {I: 1,V: 5,X: 10,L: 50,C: 100,D: 500,M: 1000}for (let i = 0, len = s.length; i < len; ++i) {const val = dict[s[i]]if (i < n - 1 && val < dict[s[i + 1]]) {num -= val} else {num += val}}return num
}

上一篇:leetCode算法—12. 整数转罗马数字
下一篇:leetCode算法—14. 最长公共前缀

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

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

相关文章

【华为机试】2023年真题B卷(python)-出错的或电路

一、题目 题目描述&#xff1a; 某生产门电路的厂商发现某一批次的或门电路不稳定&#xff0c;具体现象为计算两个二进制数的或操作时&#xff0c;第一个二进制数中某两个比特位会出现交换&#xff0c; 交换的比特位置是随机的&#xff0c;但只交换这两个位&#xff0c;其他位不…

综述 2022-Nature Medicine :AI+生物医学

Acosta, Julin N., et al. "Multimodal biomedical AI." Nature Medicine 28.9 (2022): 1773-1784. 被引次数&#xff1a;210 一、生物医学数据类型 biobanks, electronic health records, medical imaging, wearable and ambient biosensors, and the lower cost …

AI大模型:未来科技的新篇章

目录 1AI大模型&#xff1a;未来科技的新篇章 2AI超越数学家攻克经典数学难题&#xff1b;非侵入式设备解码大脑思维 1AI大模型&#xff1a;未来科技的新篇章 随着科技的飞速发展&#xff0c;人工智能&#xff08;AI&#xff09;已经成为了我们生活中不可或缺的一部分。而AI大…

高级ACL配置

高级ACL配置可以包括更复杂的条件和操作&#xff0c;以实现更精细的访问控制。下面是一个更具体的高级ACL配置示例&#xff1a; 进入网络设备的命令行界面或图形用户界面。 进入全局配置模式&#xff0c;在命令行界面中输入 "configure terminal" 命令。 创建并命名…

RoIAlign在深度学习怎么翻译

RoIAlign 的中文翻译可以是 "感兴趣区域对齐"。RoIAlign 是一种在深度学习中常用于目标检测的技术&#xff0c;它用于提取感兴趣区域&#xff08;Region of Interest&#xff0c;简称 RoI&#xff09;中的特征并进行对齐操作&#xff0c;以更准确地捕捉目标的特征信息…

Windows系统找不到xinput1_3.dll怎么办?

引言&#xff1a; 在计算机使用过程中&#xff0c;我们经常会遇到一些错误提示&#xff0c;其中之一就是xinput1_3.dll丢失。那么&#xff0c;xinput1_3.dll究竟是什么&#xff1f;为什么会出现丢失的情况&#xff1f;丢失后会对计算机产生什么影响&#xff1f;本文将详细介绍…

<JavaEE> 基于 UDP 的 Socket 通信模型

目录 一、认识相关API 1&#xff09;DatagramSocket 2&#xff09;DatagramPacket 3&#xff09;InetSocketAddress 二、UDP数据报套接字通信模型概述 三、回显客户端-服务器通信 1&#xff09;服务器代码 2&#xff09;客户端代码 一、认识相关API 1&#xff09;Data…

2023.12.21 关于 Redis 常用数据结构 和 单线程模型

目录 各数据结构具体编码方式 查看 key 对应 value 的编码方式 Reids 单线程模型 经典面试题 IO 多路复用 Redis 常用数据结构 Redis 中所有的 key 均为 String 类型&#xff0c;而不同的是 value 的数据类型却有很多种以下介绍 5 种 value 常见的数据类型 注意&#xff1…

计算机网络概述(下)——“计算机网络”

各位CSDN的uu们你们好呀&#xff0c;今天继续计算机网络概述的学习&#xff0c;下面&#xff0c;让我们一起进入计算机网络概述的世界吧&#xff01;&#xff01;&#xff01; 计算机网络体系结构 数据传输流程 计算机网络性能指标 计算机网络体系结构 两个计算机系统必须高度…

7.4组合总和(LC39-M)

算法: 组合问题&#xff0c;用回溯。 画树 回溯三部曲&#xff1a; 1.确定函数返回值和参数&#xff1a; 返回值&#xff1a;void 参数&#xff1a; candidates, target&#xff08;题目中给出的&#xff09; sum&#xff1a;统计每个组合的和&#xff0c;是否target …

5G NTN:通信新天地,卫星通信的奇妙探索

导言&#xff1a; 嗨&#xff0c;大家好&#xff01;今天我们要深入了解一项让通信更强大的技术——5G NTN。它和卫星通信结合在一起&#xff0c;为我们带来了通信的新时代。在这篇文章中&#xff0c;我们将用白话文揭示5G NTN和卫星通信的关系&#xff0c;探索这个通信世界的奇…

鞋服用户运营策略如何实现有效闭环?

实现长期价值和业务闭环是企业经营的关键。对于鞋服行业来说&#xff0c;如何基于客户旅程编排&#xff08;Customer Journey Orchestration&#xff0c;简称 CJO&#xff09;实现用户运营策略的有效闭环&#xff0c;提升长期价值呢&#xff1f; 本文围绕该主题&#xff0c;从鞋…

Ai 会替代人类工作吗?

目录 一、分析 二、一些案例 三、总结 一、分析 人工智能&#xff08;AI&#xff09;的发展和应用正在改变我们的生活和工作方式。在某些领域&#xff0c;AI已经显示出了强大的能力和潜力&#xff0c;可以比人类更快、更准确地完成任务。然而&#xff0c;是否会完全取代人类…

Golang leetcode59 螺旋矩阵

螺旋矩阵 leetcode59 初次尝试&#xff0c;从中心向外 func main() {n : 3fmt.Println(generateMatrix(n)) }// 初版&#xff0c;我们从中心点开始 func generateMatrix(n int) [][]int {//1.nXn矩阵table : make([][]int, n)for i : 0; i < n; i {table[i] make([]int, …

C语言——小细节和小知识6

一、转义字符相关 \ 反斜杠&#xff0c;转义字符中的转义序列符 \? 将?转义&#xff0c;防止他被识别成三字母词(很早的东西)中的问号 //三字母词 //??(是[ //??)是] printf("%s","??(??)"); //打印结果是[] 二、fopen函数fc…

Vue2+Vue3组件间通信方式汇总(2)------$emit

组件间通信方式是前端必不可少的知识点&#xff0c;前端开发经常会遇到组件间通信的情况&#xff0c;而且也是前端开发面试常问的知识点之一。接下来开始组件间通信方式第二弹------$emit,并讲讲分别在Vue2、Vue3中的表现。 Vue2Vue3组件间通信方式汇总&#xff08;1&#xff0…

【C++】STL 容器 - stack 堆栈容器 ① ( stack 堆栈容器特点 | stack 堆栈容器与 deque 双端数组容器对比 | 简单示例 )

文章目录 一、 stack 堆栈容器简介1、stack 堆栈容器引入2、stack 堆栈容器特点3、stack 堆栈容器与 deque 双端数组容器对比 二、 代码示例 - stack 堆栈容器简单示例1、代码示例2、执行结果 一、 stack 堆栈容器简介 1、stack 堆栈容器引入 C 语言中的 STL 标准模板库 中的 s…

ABS210-ASEMI手机适配器整流桥ABS210

编辑&#xff1a;ll ABS210-ASEMI手机适配器整流桥ABS210 型号&#xff1a;ABS210 品牌&#xff1a;ASEMI 封装&#xff1a;ABS-4 特性&#xff1a;贴片、整流桥 最大平均正向电流&#xff1a;2A 最大重复峰值反向电压&#xff1a;1000V 恢复时间&#xff1a;&#xff…

步兵 cocos2dx 加密和混淆

文章目录 摘要引言正文代码加密具体步骤代码加密具体步骤测试和配置阶段IPA 重签名操作步骤 总结参考资料 摘要 本篇博客介绍了针对 iOS 应用中的 Lua 代码进行加密和混淆的相关技术。通过对 Lua 代码进行加密处理&#xff0c;可以确保应用代码的安全性&#xff0c;同时提高性…

paddle 54 从PaddleClas2.5初始化模型用于迁移学习(LeViT、ReXNet、EfficientNet等)

随着PaddleClas版本代码的迭代,博主以前的一些代码在使用上出现了bug,导致无法初始化模型,具体涉及paddle 42 将任意paddleclas模型作为paddledetection中的backbone使用代码的使用,为此重新对最新的PaddleClas代码进行梳理,实现重新初始化PaddleClas中的模型。 在迁移学…