首页 > 其他 > 详细

Leetcode 13. Roman to Integer

时间:2017-02-26 08:01:27      阅读:189      评论:0      收藏:0      [点我收藏+]

Given a roman numeral, convert it to an integer.

Input is guaranteed to be within the range from 1 to 3999.

 

思路:先建立一个对应的dict。注意转换规则中的特例,比如XL (=50-10), IV (=5-1), 也就是说当前的字母如果小于后面的那个,当前这个字母对应的数字取负。

 1 class Solution(object):
 2     def romanToInt(self, s):
 3         """
 4         :type s: str
 5         :rtype: int
 6         """
 7         rNum = {I:1, V:5, X:10, L:50, C:100, D:500, M:1000}
 8         size = len(s)
 9         if size == 1:
10             return rNum[s[0]]
11         sum = 0
12         for i in range(size):
13             if i < size - 1 and rNum[s[i]] < rNum[s[i+1]]:
14                 sum -= rNum[s[i]]
15             else:
16                 sum += rNum[s[i]]
17         return sum

 

Leetcode 13. Roman to Integer

原文:http://www.cnblogs.com/lettuan/p/6443465.html

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