Leetcode每日一刷-13( 罗马数字转整数)

class Solution:
  def romanToInt(self, s):

    dict = {'I':1, 'V':5, 'X':10, 'L':50, 'C':100, 'D':500, 'M':1000}
    sum = 0
    # 字符串取不到,会报错,我们这里让循环总数-1次保证i+1能取到
    for i in range(len(s)-1):
      # 根据观察发现特殊IV、IX等情况,前面比后面小,正常都是先大后小
      if dict[s[i]] < dict[s[i + 1]]:
        sum -= dict[s[i]]
      else:
        sum += dict[s[i]]
    # 最后加上最后一个数
    sum += dict[s[-1]]
    return sum


pastr = 'MCMXCIV'
sol = Solution()
sol.romanToInt(pastr)

posted @ 2019-04-19 16:27  寒南  阅读(55)  评论(0编辑  收藏  举报