LeetCode面向运气之Javascript—第13题-罗马数字转整数-99.21%

news2024/12/28 20:56:28

LeetCode第13题-罗马数字转整数

题目要求

给定一个罗马数字,将其转换成整数。

罗马数字

罗马数字包含以下七种字符: I, V, X, L,C,D 和 M
分别代表1,5,10,50,100,500,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。

举例

III => 3
IX => 9
LVIII => 58
MCMXCIV => 1994

方法一

相邻两位判断是加还是减
从个位开始循环累加

/**
 * @param {string} s
 * @return {number}
 */
var romanToInt = function (s) {
    const obj = {
        'I': 1,
        'V': 5,
        'X': 10,
        'L': 50,
        'C': 100,
        'D': 500,
        'M': 1000
    }
    let s2 = s.split('').reverse()
    let result = obj[s2[0]]
    for (let i = 1; i < s2.length; i++) {
        const f = obj[s2[i]]
        const l = obj[s2[i - 1]]
        if (f < l) {
            result = result - f
        }
        else { result = result + f }
    }
    return result
};

在这里插入图片描述

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

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

相关文章

一些常用的分布式组件实现技巧

广播 可用redis的pubsub机制来支持集群内的广播。 基于redis的分布式锁 加锁 使用setnx命令&#xff1a; SET lock_key random_value NX PX 5000 其中&#xff1a; random_value 是客户端生成的唯一的字符串&#xff0c;用于在删除时唯一标识client身份。 NX 代表只在键不…

【开发实用】还在用BeanUtils?不如用MapStruct

文章目录 1. 什么是MapStruct2. 为什么使用MapStruct3. 如何使用MapStruct 1. 什么是MapStruct MapStruct是一个Java注解处理器&#xff0c;它可以简化Java bean之间的转换。它使用基于生成器的方法创建类型安全的映射代码&#xff0c;这些代码在编译时生成&#xff0c;并且比…

2023夏季黑客松大赛,Moonbeam邀请你来BUIDL

由Parity和OneBlock联合举办的「2023 夏季波卡黑客松大赛」正在火热开启中。自报名开启之日&#xff0c;便获得了来自海内外对波卡生态的高度专注和对Web3开发的热情。 本次黑客松聚焦智能合约、开发工具、社交网络等大赛命题&#xff0c;邀请了行业领军人、技术大咖、投资人等…

推进开源法律知识普及|2023开放原子全球开源峰会开源法律与合规分论坛即将启幕

随着开源在推动创新、促进协作方面的作用日益凸显&#xff0c;开源领域的法律与合规问题日益受到关注。 6月11日&#xff0c;开放原子全球开源峰会开源法律与合规分论坛将在北京经济开发区国家信创园召开&#xff0c;论坛以“开源知识产权的深度现实与广阔未来”为主题&#x…

基于SSM的校园旧书交易交换平台

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;采用JSP技术开发 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#x…

Mybatis_plus——标准分页功能制作

mybatispuls中提供分页查询中需要两个参数&#xff0c;一个是IPage接口的实现类&#xff0c;还有一个后面说。 IPage有且只有一个实现类Page类型在里面已经提供有了&#xff0c;传两个参数即可使用&#xff0c;一个是页码值&#xff0c;一个是每页显示数据的条数。查询完之后可…

chatgpt赋能python:Python代做:让您的网站更友好的SEO利器

Python代做&#xff1a;让您的网站更友好的SEO利器 如果您是一位网站管理员或者SEO工程师&#xff0c;您一定知道SEO对于网站的重要性。那么在SEO中&#xff0c;Python代做可以为您提供什么&#xff1f;在本文中&#xff0c;我们将通过介绍Python代做的技术和方法&#xff0c;…

unity发布webGL后无法预览解决

众所周知&#xff0c;unity发布成webgl后是无法直接预览的。因为一般来说浏览器默认都是禁止webgl运行的。 直接说我最后的解决方法&#xff1a;去vscode里下载一个live server ,安装好。 下载vscode地址Visual Studio Code - Code Editing. Redefined 期间试过几种方法都不管…

Ansys Zemax | 探究 OpticStudio 偏振分析功能

本文介绍了 OpticStudio 模拟基于偏振的光学现象的几种方法。本文的目的是在对基于偏振的光学进行建模时检查这些特征的优势和正确应用。讨论的功能包括偏振光瞳图、琼斯矩阵、双折射、表面涂层等。这些对于波片和隔离器等实际应用很重要。&#xff08;联系我们获取文章附件&am…

plt.loglog()函数的用法和示例(含代码)

目录 常用坐标下的图像显示在loglog函数下的显示同时显示参考文献 plt.loglog()函数通常是用于和对数函数相关的显示中。 在研究plt.loglog()函数之前&#xff0c;我们可以先从常见的线性平面坐标系入手。 如 np.linespace()函数,它在指定的间隔内返回均等的数字。 np.linespa…

Redis主从架构、数据同步原理、全量同步、增量同步

目录 专栏导读一、Redis主从架构二、数据同步原理三、全量同步的流程三、可以从以下几个方面来优化Redis主从就集群四、全量同步和增量同步区别&#xff1f;五、什么时候执行全量同步&#xff1f;六、什么时候执行增量同步&#xff1f;七、超卖问题 大家好&#xff0c;我是哪吒…

高完整性系统工程(八):Hoare Logic

目录 1. 霍尔逻辑&#xff08;Proving Programs Correct&#xff09; 1.1 警告&#xff08;Caveats&#xff09; 1.2 误解&#xff08;Misconception&#xff09; 1.3 编程语言&#xff08;Programming Language&#xff09; 1.4 程序&#xff08;Programs&#xff09; 1…

java学习 spring mybatis maven juc并发 缓存 分布式

Spring系列第11篇&#xff1a;bean中的autowire-candidate又是干什么的&#xff1f;_路人甲Java的博客-CSDN博客 Spring系列 Spring系列第1篇&#xff1a;为何要学spring&#xff1f; Spring系列第2篇&#xff1a;控制反转&#xff08;IoC&#xff09;与依赖注入&#xff08;DI…

I.MX RT1170加密启动详解(1):加密Boot镜像组成

使用RT1170芯片构建的所有平台一般都是高端场合&#xff0c;我们需要考虑软件的安全需求。该芯片集成了一系列安全功能。这些特性中的大多数提供针对特定类型攻击的保护&#xff0c;并且可以根据所需的保护程度配置为不同的级别。这些特性可以协同工作&#xff0c;也可以独立工…

macOS Ventura 13.5beta2 OpenCore 双引导分区原版黑苹果镜像

镜像特点&#xff08;本文原地址&#xff1a;http://www.imacosx.cn/113805.html&#xff0c;转载请注明出处&#xff09; 完全由黑果魏叔官方制作&#xff0c;针对各种机型进行默认配置&#xff0c;让黑苹果安装不再困难。系统镜像设置为双引导分区&#xff0c;全面去除clove…

【cfeng work】什么是云原生 Cloud Native

WorkProj 内容管理 云原生云原生应用十二要素应用cfeng的work理解 本文introduce 云原生 Cloud Native相关内容 随着技术的迭代&#xff0c;从最初的物理机—> 虚拟机&#xff0c;从单机 —> 分布式微服务&#xff0c; 现在的热门概念就是云☁&#xff08;cloud&#xff…

Windows 11 绕过 TPM 方法总结,通用免 TPM 镜像下载 (2023 年 5 月更新)

Windows 11 绕过 TPM 方法总结&#xff0c;通用免 TPM 镜像下载 (2023 年 5 月更新) 在虚拟机、Mac 电脑和 TPM 不符合要求的旧电脑上安装 Windows 11 的通用方法总结 请访问原文链接&#xff1a;https://sysin.org/blog/windows-11-no-tpm/&#xff0c;查看最新版。原创作品…

Tomcat安全配置

1.删除webapps里面自带文件&#xff08;关闭manage页面等&#xff09; 删除webapps目录中的docs、examples、host-manager、manager等正式环境用不着的目录&#xff0c;这一步就可以解决大部分漏洞。有的网站没删除manager页面&#xff0c;并且管理员弱口令&#xff0c;导致直…

PCL点云处理之三维凸包点提取与凸包模型生成,分别保存到PCD与PLY文件(一百七十一)

PCL点云处理之三维凸包点提取与凸包模型生成,分别保存到PCD与PLY文件(一百七十一) 一、算法介绍二、算法实现1.代码2.结果总结一、算法介绍 现给定一块点云,需要实现下面两个功能开发 (1)获取点云的三维凸包点,保存至PCD格式的文件中 (2)获取点云的三维凸包模型,保存…

华为OD机试真题B卷 Java 实现【报数游戏】,附详细解题思路

一、题目描述 100个人围成一圈&#xff0c;每个人有一个编码&#xff0c;编号从1开始到100。他们从1开始依次报数&#xff0c;报到为M的人自动退出圈圈&#xff0c;然后下一个人接着从1开始报数&#xff0c;直到剩余的人数小于M。请问最后剩余的人在原先的编号为多少&#xff…