首页 > 其他 > 详细

Leetcode--罗马数字转整数(13)

时间:2020-03-02 17:03:48      阅读:66      评论:0      收藏:0      [点我收藏+]

技术分享图片            技术分享图片

 

 

 主要思路:

 用字典存储罗马数字

d = {I:1,V:5,X:10,L:50,C:100,D:500,M:1000}

在读取字符串时,若左边的字符串小于右边,则将该字符所代表的数字变为负数,否则则为正数。将每个字符所代表的数字相加即可。

class Solution:
    def romanToInt(self, s: str) -> int:
        d = {I:1,V:5,X:10,L:50,C:100,D:500,M:1000}
        if len(s) == 1:
            return d[s[0]]
        ans = 0
        for i in range(len(s)-1):
            if d[s[i]] < d[s[i+1]]:
                ans -= d[s[i]]
            else:
                ans += d[s[i]]
        ans += d[s[-1]]
        return ans

踩到的坑:最开始没有用字典存储导致代码比较冗长。另外对字典的使用不太熟练,字典要按键值进行取值。(此外,键值必须是不可变的,所以键值可以是数字、字符串或者元组,但是一定不能为列表!)

 

Leetcode--罗马数字转整数(13)

原文:https://www.cnblogs.com/shawn-young/p/12396092.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!