Leetcode 13 罗马数字转整数

Posted Aprilnn

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Leetcode 13 罗马数字转整数相关的知识,希望对你有一定的参考价值。

  • 将每个罗马字母对应的整数写成字典格式,将输入的罗马数字字符串转换成列表形式
  • 一开始想的是怎么将罗马字母的对应位置找出来,利用列表循环相加
  • 后来发现了规律,‘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 罗马数字转整数的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode 13 罗马数字转整数[找规律 多条件判断] HERODING的LeetCode之路

LeetCode刷题13-简单-罗马数字转整数

LeetCode刷题13-简单-罗马数字转整数

LeetCode 13. 罗马数字转整数 java 两种解法

LeetCode 13. 罗马数字转整数 java 两种解法

LeetCode13.罗马数字转整数(Python3)