问题简介:将输入的String类型的罗马数字转化为int数值

问题详解:罗马数字由七个不同的符号表示:I,V,X,L,C,D和M

符号-数值

I - 1

V - 5

X -10

L - 50

C - 100

D - 500

M - 1000

例如,2用罗马数字写成II,只有两个I加在一起,十二写为XII,解释为X + II, 二十七写成XXVII,即XX + V + II,

罗马数字通常从左到右从最大到最小,但是,四个数字不是IIII,相反,第四个写为IV,因为一个在五个之前,我们减去四个,同样的原则适用于九,即IX,有六个使用减法的实例:

我可以放在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 and IV = 4.

解法一:

笨方法先将所有罗马字符对应的数值求和,再考虑特殊的4/9情况

解法二:

每个字符与后面的字符比较,如果小于后面的字符例如IV,就减去当前的I,如果不小于就加上当前罗马字符对应的数值

小白刷题之路,请多指教— — 要么大器晚成,要么石沉大海

LeetCode第十三题-将罗马数字转化为数字的更多相关文章

  1. [LeetCode] 13. Roman to Integer 罗马数字转化成整数

    Roman numerals are represented by seven different symbols: I, V, X, L, C, D and M. Symbol Value I 1 ...

  2. LeetCode第二十三题-合并n个有序链表

    Merge k Sorted Lists 问题简介:合并k个已排序的链表并将其作为一个排序链表返回. 举例: 输入: [ 1->4->5, 1->3->4, 2->6 ] ...

  3. 【LeetCode每天一题】Reverse Integer(反转数字)

    Given a 32-bit signed integer, reverse digits of an integer. Example 1:                              ...

  4. [LeetCode] 12. Integer to Roman 整数转化成罗马数字

    Roman numerals are represented by seven different symbols: I, V, X, L, C, D and M. Symbol Value I 1 ...

  5. leetcode 第188题,我的解法,Best Time to Buy and Sell Stock IV

    <span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255) ...

  6. 【python】Leetcode每日一题-逆波兰表达式求值

    [python]Leetcode每日一题-逆波兰表达式求值 [题目描述] 根据 逆波兰表示法,求表达式的值. 有效的算符包括 +.-.*./ .每个运算对象可以是整数,也可以是另一个逆波兰表达式. 说 ...

  7. [LintCode] Roman to Integer 罗马数字转化成整数

    Given a roman numeral, convert it to an integer. The answer is guaranteed to be within the range fro ...

  8. Leetcode OJ 刷题

    Valid Palindrome吐槽一下Leetcode上各种不定义标准的输入输出(只是面试时起码能够问一下输入输出格式...),此篇文章不是详细的题解,是自己刷LeetCode的一个笔记吧,尽管没有 ...

  9. leetcode第37题--Count and Say

    题目:(据说是facebook的面试题哦) The count-and-say sequence is the sequence of integers beginning as follows:1, ...

随机推荐

  1. 一 Struts2 开发流程

    SSH与SSM简介SSM:Spring+SpringMVC+MybatisSSH:Struts2+Hibernate+SpringStruts2:是侧重于控制层的框架Hibernate:是一个ORM( ...

  2. 【Swift 2.2】iOS开发笔记(三)

    1.UITableView 中调用 UIButton 的 setTitle 会闪 滚动列表时比较明显,解决办法: buttonType 改成 custom 即可,但是这样一来 UIButton 的高亮 ...

  3. flask刷新token

    我们在做前后端分离的项目中,最常用的都是使用token认证. 登录后将用户信息,过期时间以及私钥一起加密生成token,但是比较头疼的就是token过期刷新的问题,因为用户在登录后,如果在使用过程中, ...

  4. JMeter二次开发(1)-eclipse环境配置及源码编译

    1.下载src并解压 http://jmeter.apache.org/download_jmeter.cgi   2.获取所需jar包,编译 ant download_jars ant instal ...

  5. 数据交换格式与SpringIOC底层实现

    1.数据交换格式 1.1 有哪些数据交换格式 客户端与服务器常用数据交换格式xml.json.html 1.2 数据交换格式应用场景 1.2.1 移动端(安卓.iOS)通讯方式采用http协议+JSO ...

  6. Djangon的坑

    <a href="/del_student/?pk={{ students.pk }}"></a> 在django中当你写入这样的语句是,pk={{ stu ...

  7. CodeForces 868F Yet Another Minimization Problem(决策单调性优化 + 分治)

    题意 给定一个序列 \(\{a_1, a_2, \cdots, a_n\}\),要把它分成恰好 \(k\) 个连续子序列. 每个连续子序列的费用是其中相同元素的对数,求所有划分中的费用之和的最小值. ...

  8. 07Axios

    详情:https://pizzali.github.io/2018/10/30/Axios/ JQuery时代,我们使用ajax向后台提交数据请求,Vue时代,Axios提供了前端对后台数据请求的各种 ...

  9. dajngo cache,throttling

    缓存 背景介绍: 动态网站的问题就在于它是动态的. 也就是说每次用户访问一个页面,服务器要执行数据库查询,启动模板,执行业务逻辑以及最终生成一个你所看到的网页,这一切都是动态即时生成的. 从处理器资源 ...

  10. centos安装node环境

    一.安装wget yum install -y wget 二.下载node最新的安装包 wget https://nodejs.org/dist/v10.13.0/node-v10.13.0-linu ...