13 | Roman to Integer | 47.40% | 罗马数字转换为拉丁数字,用字典 |
字典dict{keys:valuse,…,},d.keys(),d.values() |
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Created on Wed Jan 3 21:49:18 2018
@author: vicky
"""
class Solution:
def romanToInt(self, s):
"""
:type s: str
:rtype: int
"""
#字典
d={'I':1,'V':5,'X':10,'L':50,'C':100,'D':500,'M':1000}
num=0
for i in range(len(s)-1):
if (d[s[i]]<d[s[i+1]] and (s[i]=='I' or s[i]=='X' or s[i]=='C')):
num=num-d[s[i]]
else:
num=num+d[s[i]]
return(num+d[s[len(s)-1]])
s="MCMXCVI" #string用双引号,char用单引号
Solution().romanToInt(s)
class Solution:
def romanToInt(self, s):
"""
:type s: str
:rtype: int
"""
#字典
d={'I':1,'V':5,'X':10,'L':50,'C':100,'D':500,'M':1000}
num=0
for i in range(len(s)-1):
num=num-d[s[i]] if (d[s[i]]<d[s[i+1]] and (s[i]=='I' \
or s[i]=='X' or s[i]=='C')) else num+d[s[i]]
return(num+d[s[len(s)-1]])