zoukankan      html  css  js  c++  java
  • 6:Leetcode13:Roman to Integer笔记

    1:题目描述

    将罗马数字转为十进制阿拉伯数字

    2:题目分析

    ①Ⅰ(1)、X(10)、C(100)、M(1000)、V(5)、L(50)、D(500)

    ②罗马数字中表示最大值的字母左侧数字为负,右侧为正

    ③表示负数的字母最多重复一次

    3:解体过程

     1 class Solution(object):
     2     def romanToInt(self, s):
     3         """
     4         :type s: str
     5         :rtype: int
     6         """
     7         s_len=len(s)
     8         sum=0
     9         i=0
    10         roman={'I':1,'V':5,'X':10,'L':50,'C':100,'D':500,'M':1000} #设置字典,便于取值
    11         while i<s_len-1:
    12             if roman[s[i]]<roman[s[i+1]]:#因为负值不重复,所以只比较紧邻的就可以了
    13                 sum=sum-roman[s[i]]
    14             else:
    15                 sum=sum+roman[s[i]]
    16             i=i+1
    17         sum=sum+roman[s[s_len-1]]
    18         return sum

    4:解题感悟

    发现负值不重复后代码就简洁很多了,想想自己期末考写的,真的很脑残呐┭┮﹏┭┮ 

  • 相关阅读:
    汇总博客-Alpha
    Beta冲刺总结
    用户调查报告
    Beta成果测试总结
    Beta 冲刺 (9/9)
    Beta 冲刺 (8/9)
    Beta 冲刺 (7/9)
    Beta 冲刺 (6/9)
    Beta 冲刺 (5/9)
    Beta 冲刺 (4/9)
  • 原文地址:https://www.cnblogs.com/19991201xiao/p/8407186.html
Copyright © 2011-2022 走看看