您的位置:首页 > 编程语言 > Python开发

【零基础刷Leetcode】13. Roman to Integer Python

2018-03-16 02:45 267 查看

13. Roman to Integer Python

边刷边记录,因为没有基础,所以很慢,总觉得自己可以写出来才证明自己懂了这题,有写的不对的地方,欢迎指正。转载请标明出处哦。
03/15/2018
原题链接:https://leetcode.com/problems/roman-to-integer/description/


翻译

给定一个罗马数字,将其转成对应的整数。输入限制在1到3999之间。
思路
Leetcode上给了两个hints



Hint 1: 罗马数字与整数的对应表,我直接用dictionary表示了Roman = { I:1, V:5, X:10, L:50, C:100, D:500, M:1000}Hint 2: 转换的规则
如果I(1)在 V(5) 或者 X(10) 之前, 减去1,例如:IV = 5-1=4, IX = 10-1=9也就是 I<V,I<X时,如果 I在 V或者X之前,就要减去I的值。反之如果I在V或X之后,则加上I的值, 例如:VI = 5+1 = 6
如果X(10)在 L(50) 或者 C(100) 之前, 减去10,例如:CD = 50-10=40, CM = 100-10=90 也就是 X<L,X<C时,如果 X在 L或者C之前,就要减去X的值。反之如果X在L或C之后,则加上X的值, 例如:XL = 50+10 = 60
如果C(100)在 D(500) 或者 M(1000) 之前, 减去10,例如:CD = 500-100=400, CM = 1000-100=900 也就是 C<D,C<M 时,如果 C在 D或者M之前,就要减去C的值。反之如果C在D或M之后,则加上C的值, 例如:DC = 500+100 = 600

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: