首页 > 其他 > 详细

leetcode13 Roman to Integer

时间:2020-02-05 22:34:55      阅读:75      评论:0      收藏:0      [点我收藏+]
 1 """
 2 先用dict存储罗马数字对应的阿拉伯数字,
 3 IV可划分为I,V,比较相邻字符的大小进行加减操作
 4 """
 5 class Solution:
 6     def romanToInt(self, s):
 7         if s == None:                     #讨论边界情况
 8             return 0
 9         sum = 0
10         dit = {"I": 1, "V": 5, "X": 10, "L": 50, "C": 100, "D": 500, "M": 1000}
11         for i in range(len(s)):
12             if i == 0:                       #因为下面的i-1,单独讨论i==0的情况
13                 sum = dit[s[0]]
14             elif dit[s[i]] <= dit[s[i-1]]:   #!!!以此为判别条件,进行加减
15                 #bug 没有写 = 的情况,对于III案例测试 答案错误
16                 sum += dit[s[i]]
17             else:
18                 sum = sum + dit[s[i]] - 2*dit[s[i-1]] #减去之间加的,所以乘2
19         return sum

 

leetcode13 Roman to Integer

原文:https://www.cnblogs.com/yawenw/p/12266857.html

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