给定一个数字,看这个数满足在13个字符中几个。
比如:2786 = 21000 + 500 + 2100 + 50 + 3*10 + 5+1;
class Solution:
def intToRoman(self, num):
nums = [1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1]
scope = ['M', 'CM', 'D', 'CD', 'C', 'XC', 'L', 'XL', 'X', 'IX', 'V', 'IV', 'I']
res = ''
i = 0
while i < len(nums):
if num >= nums[i]:
num -= nums[i]
res += scope[i]
else:
i += 1
return res
给定一个字符转换成数字。
输入: “MCMXCIV”
输出: 1994
解释: M = 1000, CM = 900, XC = 90, IV = 4.
class Solution:
def romanToInt(self, s):
nums = [1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1]
scope = ['M', 'CM', 'D', 'CD', 'C', 'XC', 'L', 'XL', 'X', 'IX', 'V', 'IV', 'I']
n = len(s)-1
i = 0
res = 0
while i <= n:
if i <= n-1:
if nums[scope.index(s[i])] < nums[scope.index(s[i+1])]:
res += nums[scope.index(s[i:i+2])]
i += 2
else:
res += nums[scope.index(s[i])]
i += 1
elif i == n:
res += nums[scope.index(s[i])]
i += 1
return res