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]
            
  • 相关阅读:
    WCF+Silverlight 制作一个简单RSS的阅读器(一)
    将Ironpython嵌入到你的程序中
    今天修改了网页
    开发小议
    Silverlight 可以支持windows2000了
    昨天晚上开始寻找圣诞的素材了
    需要每天的坚持!
    今天开始学习ADO.NET中的Connection对象(一)SqlConnection对象连接SQL Server
    一个基于Ajax简单的数据验证
    《微软:DirectShow开发指南》第4章 Capturing Audio with DirectShow
  • 原文地址:https://www.cnblogs.com/bonelee/p/8660327.html
Copyright © 2011-2022 走看看