Uriel's Corner

Research Associate @ Harvard University / Research Interests: Computer Vision, Biomedical Image Analysis, Machine Learning
posts - 0, comments - 50, trackbacks - 0, articles - 594
罗马数字转阿拉伯数字,从左往右一位一位处理,如果当前遇到的罗马字比前一位处理的要小,说明出现了4和9的情况,要减去两倍的刚才叠加上的数
 1 #13
 2 #Runtime: 52 ms
 3 #Memory Usage: 13.5 MB
 4 
 5 class Solution(object):
 6     def romanToInt(self, s):
 7         """
 8         :type s: str
 9         :rtype: int
10         """
11         num = 0
12         pre_val = 1000
13         roman_dict = {'I'1'V'5'X'10'L'50'C'100'D'500'M'1000}
14         for i in s:
15             num = num + roman_dict[i]
16             if pre_val < roman_dict[i]:
17                 num = num - 2 * pre_val
18             pre_val = roman_dict[i]
19         return num

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理