zoukankan      html  css  js  c++  java
  • leetcode 13. Roman to Integer

    Given a roman numeral, convert it to an integer.

    Input is guaranteed to be within the range from 1 to 3999.

    Roman Numerals Chart

               

    M=1000

       

    D = 500

     
                         

    I

    1

     

    XXXII

    32

     

    LXIII

    63

     

    XCIV

    94

    II

    2

     

    XXXIII

    33

     

    LXIV

    64

     

    XCV

    95

    III

    3

     

    XXXIV

    34

     

    LXV

    65

     

    XCVI

    96

    IV

    4

     

    XXXV

    35

     

    LXVI

    66

     

    XCVII

    97

    V

    5

     

    XXXVI

    36

     

    LXVII

    67

     

    XCVIII

    98

    VI

    6

     

    XXXVII

    37

     

    LXVIII

    68

     

    XCIX

    99

    VII

    7

     

    XXXVIII

    38

     

    LXIX

    69

     

    C

    100

    VIII

    8

     

    XXXIX

    39

     

    LXX

    70

         

    IX

    9

     

    XL

    40

     

    LXXI

    71

     

    EX.

     

    X

    10

     

    XLI

    41

     

    LXXII

    72

     

    DI

    501

    XI

    11

     

    XLII

    42

     

    LXXIII

    73

     

    DL

    550

    XII

    12

     

    XLIII

    43

     

    LXXIV

    74

     

    DXXX

    530

    XIII

    13

     

    XLIV

    44

     

    LXXV

    75

     

    DCCVII

    707

    XIV

    14

     

    XLV

    45

     

    LXXVI

    76

     

    DCCCXC

    890

    XV

    15

     

    XLVI

    46

     

    LXXVII

    77

     

    MD

    1500

    XVI

    16

     

    XLVII

    47

     

    LXXVIII

    78

     

    MDCCC

    1800

    XVII

    17

     

    XLVIII

    48

     

    LXXIX

    79

     

    CM

    900

    XVIII

    18

     

    XLIX

    49

     

    LXXX

    80

         

    XIX

    19

     

    L

    50

     

    LXXXI

    81

         

    XX

    20

     

    LI

    51

     

    LXXXII

    82

         

    XXI

    21

     

    LII

    52

     

    LXXXIII

    83

         

    XXII

    22

     

    LIII

    53

     

    LXXXIV

    84

         

    XXIII

    23

     

    LIV

    54

     

    LXXXV

    85

         

    XXIV

    24

     

    LV

    55

     

    LXXXVI

    86

         

    XXV

    25

     

    LVI

    56

     

    LXXXVII

    87

         

    XXVI

    26

     

    LVII

    57

     

    LXXXVIII

    88

         

    XXVII

    27

     

    LVIII

    58

     

    LXXXIX

    89

         

    XXVIII

    28

     

    LIX

    59

     

    XC

    90

         

    XXIX

    29

     

    LX

    60

     

    XCI

    91

         

    XXX

    30

     

    LXI

    61

     

    XCII

    92

         

    XXXI

    31

     

    LXII

    62

     

    XCIII

    93

         

    其实看明白这个该死的表就可以求解了!

    class Solution(object):
        def romanToInt(self, s):
            """
            :type s: str
            :rtype: int
            """
            roman = {'M': 1000,'D': 500 ,'C': 100,'L': 50,'X': 10,'V': 5,'I': 1}
            nums = [roman[c] for c in s]
            ans = 0
            for i in xrange(0, len(s)-1):
                if nums[i] < nums[i+1]:
                    ans -= nums[i]
                else:
                    ans += nums[i]
            return ans + nums[-1]
            
  • 相关阅读:
    line-height 行高
    CSS菜单横竖布局要点
    鬼吹灯之精绝古城迅雷下载
    sublime less高亮插件
    Swiper说明&&API手册
    jQuery的deferred对象详解
    js中typeof与instanceof的不同用法
    js中apply方法的使用
    Javascript获取当前时间戳的方法
    json对象和json字符串转换方法
  • 原文地址:https://www.cnblogs.com/bonelee/p/8660327.html
Copyright © 2011-2022 走看看