zoukankan      html  css  js  c++  java
  • LeetCode第十三题-将罗马数字转化为数字

    问题简介:将输入的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,如果不小于就加上当前罗马字符对应的数值

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

  • 相关阅读:
    awt
    登录校验 简单实现
    事务隔离级别
    事务的四大特性(ACID)
    多线程简单了解
    Eureka bug
    什么是存储过程
    filter和servlet的区别
    说说你对多线程锁机制的理解
    session的生命周期,session何时创建,何时销毁,session销毁的方式
  • 原文地址:https://www.cnblogs.com/lalalaczq/p/10727871.html
Copyright © 2011-2022 走看看