码迷,mamicode.com
首页 > 其他好文 > 详细

Leetcode 13 罗马数字转整数

时间:2018-06-18 21:49:54      阅读:205      评论:0      收藏:0      [点我收藏+]

标签:lis   输入   字符串   CM   bsp   col   pre   ict   class   

  • 将每个罗马字母对应的整数写成字典格式,将输入的罗马数字字符串转换成列表形式
  • 一开始想的是怎么将罗马字母的对应位置找出来,利用列表循环相加
  • 后来发现了规律,‘IV‘和’I‘+‘V‘只相差2,以此类推,最后将得到的总和减去多少个x里面的2就好了

  

def Rome(x):
    dict={
        ‘I‘:1,
        ‘V‘:5,
        ‘X‘:10,
        ‘L‘:50,
        ‘C‘:100,
        ‘D‘:500,
        ‘M‘:1000
    }
    z=list(x)
    print(z)
    sum=0
    for i in z:
        sum=sum+dict[i]
    if ‘IV‘ in x or ‘IX‘in x:
        num = x.count(‘IV‘)+x.count(‘IX‘)
        sum = sum - num * 2
    if ‘XL‘ in x or ‘XC‘in x:
        num=x.count(‘XL‘)+x.count(‘XC‘)
        sum=sum-num*20
    if ‘CD‘ in x or ‘CM‘in x:
        num=x.count(‘CD‘)+x.count(‘CM‘)
        sum=sum-num*200
    return sum

 

Leetcode 13 罗马数字转整数

标签:lis   输入   字符串   CM   bsp   col   pre   ict   class   

原文地址:https://www.cnblogs.com/Aprilnn/p/9196100.html

踩
(0)
赞
(0)
   
举报
评论 一句话评论(0)
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!