Leetcode刷题(4)罗马数字转整数

最好的种树是十年前,其次是现在。歌谣 每天一个前端小知识 提醒你改好好学习了 知乎博主 csdn博主 b站博主  放弃很容易但是坚持一定很酷     我是歌谣 喜欢就一键三连咯 你得点赞是对歌谣最大的鼓励

罗马数字包含以下七种字符: 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 到 3999 的范围内。
示例 1:
输入: "III"
输出: 3
示例 2:
输入: "IV"
输出: 4
示例 3:
输入: "IX"
输出: 9
示例 4:
输入: "LVIII"
输出: 58
解释: L = 50, V= 5, III = 3.
示例 5:
输入: "MCMXCIV"
输出: 1994
解释: M = 1000, CM = 900, XC = 90, IV = 4.
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/roman-to-integer

代码部分

// function switchList(value) {
//     switch (value) {
//       case 'I':
//         return 1
//         break
//       case 'IV':
//         return 4
//         break
//       case 'V':
//         return 5
//         break
//       case 'IX':
//         return 9
//         break
//       case 'X':
//         return 10
//         break
//       case 'X':
//         return 40
//         break//       case 'L':
//         return 50
//         break
//       case 'XC':
//         return 90
//         break
//       case 'C':
//         return 100
//         break
//       case 'CD':
//         return 400
//         break
//       case 'D':
//         return 500
//         break
//       case 'DM':
//         return 900
//         break
//       case 'M':
//         return 1000
//         break
//     }
//   }var romanToInt = function (s) {let object = {I: 1,IV: 4,V: 5,IX: 9,X: 10,XL: 40,L: 50,XC: 90,C: 100,CD: 400,D: 500,CM: 900,M: 1000,}let num = 0for (let i = 0; i < s.length; ) {if (i + 1 < s.length && object[s.substring(i, i + 2)]) {num = num + object[s.substring(i, i + 2)]i = i + 2} else {num = num + object[s.substring(i, i + 1)]i = i + 1}}return num}

运行结果

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

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

相关文章

深入理解移动前端开发之viewport

在移动设备上进行网页的重构或开发&#xff0c;首先得搞明白的就是移动设备上的viewport了&#xff0c;只有明白了viewport的概念以及弄清楚了跟viewport有关的meta标签的使用&#xff0c;才能更好地让我们的网页适配或响应各种不同分辨率的移动设备。 一、viewport的概念 通…

Git之版本回退

像这样&#xff0c;你不断对文件进行修改&#xff0c;然后不断提交修改到版本库里&#xff0c;就好比玩RPG游戏时&#xff0c;每通过一关就会自动把游戏状态存盘&#xff0c;如果某一关没过去&#xff0c;你还可以选择读取前一关的状态。有些时候&#xff0c;在打Boss之前&…

Leetcode刷题(5)最长公共前缀

最好的种树是十年前,其次是现在。歌谣 每天一个前端小知识 提醒你改好好学习了 知乎博主 csdn博主 b站博主 放弃很容易但是坚持一定很酷 我是歌谣 喜欢就一键三连咯 你得点赞是对歌谣最大的鼓励 编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀&…

Internal Server Error - http code 500

Eror Example 1 :转载于:https://www.cnblogs.com/shuman/p/3938096.html

Git之工作区和暂存区

工作区&#xff08;Working Directory&#xff09; 就是你在电脑里能看到的目录&#xff0c;比如我的learngit文件夹就是一个工作区 版本库&#xff08;Repository&#xff09; 工作区有一个隐藏目录.git&#xff0c;这个不算工作区&#xff0c;而是Git的版本库 Git的版本库…

vue移动端html5页面根据屏幕适配的四种解决方法

最近做了两个关于h5页面对接公众号的项目&#xff0c;不得不提打开微信浏览器内置地图导航的功能确实有点恶心。下次想起来了的话&#xff0c;进行总结分享一下如何处理。在vue移动端h5页面当中&#xff0c;其中适配是经常会遇到的问题&#xff0c;这块主要有死个方法可以适用。…

javascript学习系列(12):数组中的join方法

最好的种树是十年前,其次是现在。歌谣 每天一个前端小知识 提醒你改好好学习了 知乎博主 csdn博主 b站博主 放弃很容易但是坚持一定很酷 我是歌谣 喜欢就一键三连咯 你得点赞是对歌谣最大的鼓励 1前言 在我们的日常开发中 不免会有很多需要处理数据的方法 本节主要说一说j…

Git之管理修改

现在&#xff0c;假定你已经完全掌握了暂存区的概念。下面&#xff0c;我们要讨论的就是&#xff0c;为什么Git比其他版本控制系统设计得优秀&#xff0c;因为Git跟踪并管理的是修改&#xff0c;而非文件 你会问&#xff0c;什么是修改&#xff1f;比如你新增了一行&#xff0…

javascript学习系列(14):数组中的indexOf方法

最好的种树是十年前,其次是现在。歌谣 每天一个前端小知识 提醒你改好好学习了 知乎博主 csdn博主 b站博主 放弃很容易但是坚持一定很酷 我是歌谣 喜欢就一键三连咯 你得点赞是对歌谣最大的鼓励 1前言 在我们的日常开发中 不免会有很多需要处理数据的方法 本节主要说一说…

Git之撤销修改

自然&#xff0c;你是不会犯错的。不过现在是凌晨两点&#xff0c;你正在赶一份工作报告&#xff0c;你在readme.txt中添加了一行 在你准备提交前&#xff0c;一杯咖啡起了作用&#xff0c;你猛然发现了“stupid boss”可能会让你丢掉这个月的奖金&#xff01; 既然错误发现得…

glibc与MSVC CRT(转载)

glibc与MSVC CRT 运行库是平台相关的&#xff0c;因为它与操作系统结合得非常紧密。C语言的运行库从某种程度上来讲是C语言的程序和不同操作系统平台之间的抽象层&#xff0c;它将不同的操作系统API抽象成相同的库函数。比如我们可以在不同的操作系统平台下使用fread来读取文件…

asp.net下载的三种方式

Codeprotected void Button1_Click(object sender, EventArgs e) { /* 微软为Response对象提供了一个新的方法TransmitFile来解决使用Response.BinaryWrite 下载超过400mb的文件时导致Aspnet_wp.exe进程回收而无法成功下载的问题。 …

javascript学习系列(13):数组中的concat方法

最好的种树是十年前,其次是现在。歌谣 每天一个前端小知识 提醒你改好好学习了 知乎博主 csdn博主 b站博主 放弃很容易但是坚持一定很酷 我是歌谣 喜欢就一键三连咯 你得点赞是对歌谣最大的鼓励 1前言 在我们的日常开发中 不免会有很多需要处理数据的方法 本节主要说一说c…

如何阻止表单的默认提交事件

表单一点击提交按钮(submit)必然跳转页面&#xff0c;如果表单的action为空也会跳转到自己的页面&#xff0c;即效果为刷新当前页。 如下&#xff0c;可以看到一点击提交按钮&#xff0c;浏览器的刷新按钮闪了一下&#xff1a; 如果想要阻止表单的默认提交事件&#xff0c;有以…

javascript学习系列(15):数组中的lastIndexOf方法

最好的种树是十年前,其次是现在。歌谣 每天一个前端小知识 提醒你改好好学习了 知乎博主 csdn博主 b站博主 放弃很容易但是坚持一定很酷 我是歌谣 喜欢就一键三连咯 你得点赞是对歌谣最大的鼓励 1前言 在我们的日常开发中 不免会有很多需要处理数据的方法 本节主要说一说…

【ExtJS】FormPanel 布局(一)

准备工作&#xff0c;布置一个最简单的Form&#xff0c;共5个组件&#xff0c;都为textfield。 1 Ext.onReady(function(){2 Ext.create(Ext.form.Panel, {3 width: 500,4 title: Layout,5      renderTo : form,6 items: [{7 xt…

JS之四舍五入Fixed

用法&#xff1a;toFixed() 方法可把 Number 四舍五入为指定小数位数的数字 语法&#xff1a;NumberObject.toFixed(num) 参数&#xff1a;必需。规定小数的位数&#xff0c;是 0 ~ 20 之间的值&#xff0c;包括 0 和 20&#xff0c;有些实现可以支持更大的数值范围。如果省略…

javascript学习系列(16):数组中的every方法

最好的种树是十年前,其次是现在。歌谣 每天一个前端小知识 提醒你改好好学习了 知乎博主 csdn博主 b站博主 放弃很容易但是坚持一定很酷 我是歌谣 喜欢就一键三连咯 你得点赞是对歌谣最大的鼓励 1前言 在我们的日常开发中 不免会有很多需要处理数据的方法 本节主要说一说…

JS之Number的toString方法

作用&#xff1a;toString() 方法可把一个 Number 对象转换为一个字符串&#xff0c;并返回结果 语法&#xff1a;NumberObject.toString(radix) 参数&#xff1a;可选。规定表示数字的基数&#xff0c;使 2 ~ 36 之间的整数。若省略该参数&#xff0c;则使用基数 10。但是要…

javascript学习系列(17):数组中的find方法

最好的种树是十年前,其次是现在。歌谣 每天一个前端小知识 提醒你改好好学习了 知乎博主 csdn博主 b站博主 放弃很容易但是坚持一定很酷 我是歌谣 喜欢就一键三连咯 你得点赞是对歌谣最大的鼓励 1前言 在我们的日常开发中 不免会有很多需要处理数据的方法 本节主要说一说…