zoukankan      html  css  js  c++  java
  • 【leetcode❤python】13. Roman to Integer

    #-*- coding: UTF-8 -*-
    #从前向后遍历罗马数字,
    #如果某个数比前一个数小,则加上该数。反之,减去前一个数的两倍然后加上该数
    ###-----技术规则-----
    #-------------------------------------------------------------------------------------
    ##1、相同的数字连写,所表示的数等于这些数字相加得到的数,例如:III = 3
    ##2、小的数字在大的数字右边,所表示的数等于这些数字相加得到的数,例如:VIII = 8
    ##3、小的数字,限于(I、X和C)在大的数字左边,所表示的数等于大数减去小数所得的数,例如:IV = 4
    ##4、正常使用时,连续的数字重复不得超过三次
    ##5、在一个数的上面画横线,表示这个数扩大1000倍(本题只考虑3999以内的数,所以用不到这条规则)

    class Solution(object):
        romandic={'I':1,
                  'V':5,
                  'X':10,
                  'L':50,
                  'C':100,
                  'D':500,
                  'M':1000}
        def romanToInt(self, s):
        
            intsum=0
        
            size=len(s)
            i=0
            while i<size:
                if(i>0 and self.romandic[s[i-1]]<self.romandic[s[i]]):
                    intsum+=self.romandic[s[i]]-2*self.romandic[s[i-1]]
                else:intsum+=self.romandic[s[i]]
                i+=1
            return intsum

    sol=Solution()
    print sol.romanToInt('IV')

  • 相关阅读:
    新闻发布系统之 登陆注销
    readonly和const的区别
    c#中文件流的读写
    解决jsp两种提交方式乱码 的方法
    B/S 和 C/S两种架构
    App.config的典型应用
    接口实现多态
    Spring概念
    在Spring的核心配置文件applicationContext.xml中配置事务,主要配置三大方面:事务管理器、事务通知和定义事务性切面。
    乱码问题解决方案
  • 原文地址:https://www.cnblogs.com/kwangeline/p/5953510.html
Copyright © 2011-2022 走看看