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

这篇具有很好参考价值的文章主要介绍了LeetCode面向运气之Javascript—第13题-罗马数字转整数-99.21%。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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
};

LeetCode面向运气之Javascript—第13题-罗马数字转整数-99.21%文章来源地址https://www.toymoban.com/news/detail-469116.html

到了这里,关于LeetCode面向运气之Javascript—第13题-罗马数字转整数-99.21%的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • leetcode12. 整数转罗马数字

    首先这题不需要怎么考虑罗马数字顺序的问题,罗马转整数才需要,因为我模拟出来对照表就行,不涉及加减运算。 那怎么模拟对照表呢?每一个十分位的整数,都是两个字母的组合。那我按区间列出每个十分位的组合就ok。 直接模拟出1-10,10-100,100-1000,1000-3000的罗马字符

    2024年02月17日
    浏览(38)
  • 【Leetcode刷题】算法:罗马数字转整数

    定义一个 Solution 类,该类包含一个 romanToInt 方法用于将罗马数字转换为整数。 初始化变量 answer 为 0,用于保存转换后的整数值。 获取输入字符串 s 的长度,并保存在变量 length 中。 创建一个字典 d,将每个罗马数字字符与对应的数值进行映射。 使用 for 循环遍历 s 中的每个

    2024年02月05日
    浏览(92)
  • Leetcode算法系列| 12. 整数转罗马数字

    罗马数字包含以下七种字符: 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 。 通常情况下,罗马数字中小的数字在大的数字的右边。但也存在特例,例如

    2024年02月02日
    浏览(46)
  • 暴力破解(if循环)解决leetcode数字转成罗马数字

    1.题目描述 2.解题思路 刚看到这个题目的时候,感觉说的有点啰嗦,其实不难发现,这个题目和之前的给你多少钱,什么2元,5元的,给你一个数字,让你算各种钱币有多少张。无非就是从小到大进行判断,首先判断给定的数字,能容纳多少个最大的,然后依次减少。 3.代码

    2024年02月19日
    浏览(41)
  • 面试经典150题——罗马数字转整数

    罗马数字包含以下七种字符:  I ,  V ,  X ,  L , C , D  和  M 。 例如, 罗马数字 2 写做  II  ,即为两个并列的 1 。 12 写做  XII  ,即为  X  +  II  。 27 写做   XXVII , 即为  XX  +  V  +  II  。 通常情况下,罗马数字中小的数字在大的数字的右边。但也存在特例,例

    2024年02月12日
    浏览(39)
  • LeeCode前端算法基础100题(17)- 罗马数字转整数

    罗马数字包含以下七种字符:  I ,  V ,  X ,  L , C , D  和  M 。 例如, 罗马数字  2  写做  II  ,即为两个并列的 1 。 12  写做  XII  ,即为  X  +  II  。  27  写做   XXVII , 即为  XX  +  V  +  II  。 通常情况下,罗马数字中小的数字在大的数字的右边。但也存在特

    2024年01月19日
    浏览(52)
  • LeeCode前端算法基础100题(18)整数转罗马数字

    一、问题详情: 罗马数字包含以下七种字符:  I ,  V ,  X ,  L , C , D  和  M 。 例如, 罗马数字 2 写做  II  ,即为两个并列的 1。12 写做  XII  ,即为  X  +  II  。 27 写做   XXVII , 即为  XX  +  V  +  II  。 通常情况下,罗马数字中小的数字在大的数字的右边。但

    2024年01月18日
    浏览(43)
  • JavaScript—面向对象、作用域

    C#:从类继承 js:从对象继承 模板(类) 原型继承(实体) 有一个对象存在,构造函数设置原型为这个对象 创建出来的对象就继承与这个对象(从对象那里继承) 此时p1、p2用的不是同一个say方法 方法与变量name、age等字段一样,占据了对象的内存 也就是说,每创建一个这

    2024年02月11日
    浏览(49)
  • JavaScript之接口和面向接口编程

    曾探《JavaScript设计模式与开发实践》; 《javaScript设计模式与开发实践》笔记 什么是接口 ? 字面意义上的api接口,供外部使用,不需关注内部实现; 静态语言提供的 interface,为编写类提供一种契约,方便编译器检查; 面向接口编程的接口。 静态语言- 面向接口编程

    2024年02月13日
    浏览(40)
  • javascript设计模式-面向对象基础

    在JS这种弱类型的语言中,类型不匹配错误很难跟踪。可以使用接口来进行类型检查。如果强制使用,又会弱化语言的灵活性。因为有额外的代码调用,所以又会降低性能。解决方法就是在开发时进行类型检查,在开始完成后删除此部分代码。 但JS中的接口实现方式是模拟的

    2024年01月18日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包