码迷,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 IXin x:
        num = x.count(IV)+x.count(IX)
        sum = sum - num * 2
    if XL in x or XCin x:
        num=x.count(XL)+x.count(XC)
        sum=sum-num*20
    if CD in x or CMin 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
迷上了代码!