zoukankan      html  css  js  c++  java
  • LeetCode Easy: 13. Roman to Integer

    一、题目

    Given a roman numeral, convert it to an integer.

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

    二、思路解析

    罗马数规则如下:

    将数字和字符串对应,当然需要用到字典,循环遍历给定的字符串中的字符,如果当前字符所对应的字典值比下一个字符所对应的字典值大,那么就执行加的操作,反之则减。这里有个小trick,由于鄙人python并不精通,不知道怎么同时访问字符串中的当前字符和当前字符的下一个字符,所以可以借用变量sums,初始化为0,然后按上述规则累加累减,最后再加上最后一个字符的字典值即可。

    三、代码

    #coding:utf-8
    
    def romanToInt(s):
        """
        :type s: str
        :rtype: int
        """
        charToInt = {"I": 1,
                     "V": 5,
                     "X": 10,
                     "L": 50,
                     "C": 100,
                     "D": 500,
                     "M": 1000}
    
        sums = 0
        for item in range(len(s)-1):
            if charToInt[s[item]]>=charToInt[s[item+1]]:
                sums += charToInt[s[item]]
            else:
                sums = sums - charToInt[s[item]]
        print(sums+charToInt[s[-1]])
        return sums+charToInt[s[-1]]
    
    if __name__ == '__main__':
        romanToInt("DCXIX")
    

      

    既然无论如何时间都会过去,为什么不选择做些有意义的事情呢
  • 相关阅读:
    Cookie的定义和分类,及优缺点
    网页开发和设计
    电视精灵(新手练习项目)
    C#体检套餐项目
    C#简单的对象交互
    那些年我们学过的构造函数(构造方法,C#)
    员工打卡课后小项目
    SpringMVC类型转换器
    SpringMVC 异常处理3种方案
    SSH整合(一)hibernate+spring
  • 原文地址:https://www.cnblogs.com/xiaodongsuibi/p/8594732.html
Copyright © 2011-2022 走看看