leetcode-easy-math-13 Roman to Integer
2024-10-07 00:49:13
mycode 97.21%
class Solution(object):
def romanToInt(self, s):
"""
:type s: str
:rtype: int
"""
dic = {'I':1,'V':5,'X':10,'L':50,'C':100,'D':500,'M':1000,'IV':4,'IX':9,'XL':40,'XC':90,'CD':400,'CM':900}
res = 0
flag = 0
for i in range(len(s)-1):
if flag:
flag = 0
continue
temp = s[i] + s[i+1]
if temp in dic:
res += dic[temp]
flag = 1
else:
res += dic[s[i]]
if flag == 0:
return res + dic[s[-1]]
return res
参考
class Solution(object):
def romanToInt(self, s):
"""
:type s: str
:rtype: int
"""
roman_map = {
"I": 1,
"V": 5,
"X": 10,
"L": 50,
"C": 100,
"D": 500,
"M": 1000
}
sum = 0
for idx, c in enumerate(s[:-1]):
num = roman_map[c]
sum += (-num) if roman_map[s[idx+1]] > num else num#题目已经说了字母是按大到小,除了特殊的
sum += roman_map[s[-1]]
return sum
最新文章
- Linux进程环境
- swifttextfield代理方法
- mysql pid文件
- JAVA基础学习day14--集合一
- C#中() =>;是什么意思
- 【转】Linux Soclet编程
- 在Java中怎样把数组转换为ArrayList?
- 真相:中国版BBB用USB连电脑没有盘符的根本原因分析
- IO 常用
- 10 个迅速提升你 Git 水平的提示(转)
- 2017西安网络赛 F
- 浅谈Linux基本命令
- git 学习(3) ----- 代码共享和多人协作
- win10家庭版删除文件提示没有权限最简单的方式
- MySQL插入命令_INSERT INTO
- HDU - 4389 X mod f(x)(数位dp)
- disruptor的并行用法
- 关于 未在本地计算机上注册“VFPOLEDB.1” 的解决方案
- Hadoop HBase概念学习系列之HBase里的时间戳(二十六)
- [模式识别].(希腊)西奥多里蒂斯&;lt;第四版&;gt;笔记5之__特征选取