博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
013_RomanToInteger
阅读量:5969 次
发布时间:2019-06-19

本文共 1117 字,大约阅读时间需要 3 分钟。

 

#####solution1####faster####def romanToInt(s):    d={        'I':1,        'V':5,        'X':10,        'L':50,        'C':100,        'D':500,        'M':1000    }    i = 1    count = last = d[s[0]]    while i < len(s):        current = d[s[i]]        if current > last:            count -= last * 2        count += current        last = current        i += 1    return count# ########solution2######### def romanToInt(s):#     d = {'I': 1,#          'V': 5,#          'X': 10,#          'L': 50,#          'C': 100,#          'D': 500,#          'M': 1000#          }#     res = 0#     if len(s) < 2:#         return d[s[0]]#     res = res + d[s[0]]#     for i in range(1,len(s)):#         res = res + d[s[i]]#         if d[s[i]] > d[s[i - 1]]:#             res = res - 2 * d[s[i-1]]#     return res### if __name__=='__main__':#     m="MCMXCIV"#     print(romanToInt(m))

  

  分析:

current记录当前元素值,last记录前一个元素值,count记录current之前所有元素的和,也就是加上了last。

当current大于last时,count需要先减去last再加上current-last,即count-2*last+current

当current小于last时,count直接加上当前current即可,即count+current

 

转载于:https://www.cnblogs.com/graybird/p/10734473.html

你可能感兴趣的文章
mysql之DDL操作--数据库
查看>>
java json格式的转换和读取
查看>>
find的命令的使用和文件名的后缀
查看>>
恢复WORD2010的默认模板2011-05-03
查看>>
Test2 unit2
查看>>
首届中国IT架构大师高峰论坛(十年架构之路汇成一句话!)
查看>>
【Windows编程】系列第三篇:文本字符输出
查看>>
shell脚本逻辑判断,文件目录属性判断,if,case用法
查看>>
教程:一起学习Hystrix--服务(依赖)失败场景的表象
查看>>
华为链路汇聚命令(静态)
查看>>
2018年UI设计师的工资待遇怎么样?高实在是高啊
查看>>
MongoDB导出场景查询优化 #1
查看>>
Linux进阶:DNS详解
查看>>
ajaxSetup
查看>>
什么心态阻碍了你职业的发展
查看>>
亚马逊给警察局装备了人脸识别系统就万事大吉了?没那么容易
查看>>
Python手绘图了解一下!
查看>>
wxPython和PyQt谁才是最赞的Python GUI库?
查看>>
简单工厂模式--加减乘除运算
查看>>
智能语音机器人市场对手如此多,微服网络如何更胜一筹
查看>>