• python 练习题 13. 罗马数字转整数


     1 地址:https://leetcode-cn.com/problems/roman-to-integer/
     2 '''
     3 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。
     4 
     5 字符          数值
     6 I             1
     7 V             5
     8 X             10
     9 L             50
    10 C             100
    11 D             500
    12 M             1000
    13 例如, 罗马数字 2 写做 II ,即为两个并列的 1 。12 写做 XII ,即为 X + II 。 27 写做  XXVII, 即为 XX + V + II 。
    14 
    15 通常情况下,罗马数字中小的数字在大的数字的右边。但也存在特例,例如 4 不写做 IIII,而是 IV。数字 1 在数字 5 的左边,所表示的数等于大数 5 减小数 1 得到的数值 4 。同样地,数字 9 表示为 IX。这个特殊的规则只适用于以下六种情况:
    16 
    17 I 可以放在 V (5) 和 X (10) 的左边,来表示 4 和 9。
    18 X 可以放在 L (50) 和 C (100) 的左边,来表示 40 和 90。 
    19 C 可以放在 D (500) 和 M (1000) 的左边,来表示 400 和 900。
    20 给定一个罗马数字,将其转换成整数。
    21 
    22  
    23 
    24 示例 1:
    25 
    26 输入: s = "III"
    27 输出: 3
    28 示例 2:
    29 
    30 输入: s = "IV"
    31 输出: 4
    32 示例 3:
    33 
    34 输入: s = "IX"
    35 输出: 9
    36 示例 4:
    37 
    38 输入: s = "LVIII"
    39 输出: 58
    40 解释: L = 50, V= 5, III = 3.
    41 示例 5:
    42 
    43 输入: s = "MCMXCIV"
    44 输出: 1994
    45 解释: M = 1000, CM = 900, XC = 90, IV = 4.
    46 
    47 '''
    48 
    49 '''
    50 思路:
    51 1.长度大于2时,取二个值,判断如果后面值大于前面的值,则用后面值减去前面的值;并把这二个值从s中去除
    52 
    53 2.如果前面值大于后面值,则把第一个值去除,然后累加
    54 
    55 3.最终得到结果
    56 '''
    57 
    58 class Solution:
    59     def romanToInt(self, s: str) -> int:
    60         init = {'I':1,'V':5,'X':10,'L':50,'C':100,'D':500,'M':1000}
    61         sum = 0
    62         while len(s) >=1:
    63             if len(s) == 1:
    64                 sum += init[s]
    65                 break
    66             else:
    67                 sum1 = init[s[0]]
    68                 sum2 = init[s[1]]
    69                 if sum2>sum1:
    70                     sum = sum + sum2 - sum1
    71                     s = s[2:]
    72                 else:
    73                     sum = sum + sum1
    74                     s = s[1:]
    75         return sum
  • 相关阅读:
    【转载】python字符格式化
    【python】生产者消费者问题优化
    【python】pickle文件读写的insecure问题
    【工具使用】sublime设置换行符为unix风格
    【python】CGI部署问题解决
    【python】引用c的dll
    【多线程】Python进程,队列和锁相关的一些问题
    【Python】下载图片,标识之后转发出去
    【Python】PIL在window64位机制上引用异常问题解决
    【Python网页分析】httplib库的重定向处理
  • 原文地址:https://www.cnblogs.com/whycai/p/16133607.html
Copyright © 2020-2023  润新知