罗马数字转整数
罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。
class Solution:
def romanToInt(self, s: str) -> int:
num1 = s
num2 = 0
list1 = []
m = 0
for n in num1: #把输入的字符串拆分,并转换为对应的数字存入列表
if n == 'V':
list1.append(5)
if n == 'I' :
list1.append(1)
if n == 'X' :
list1.append(10)
if n == 'L' :
list1.append(50)
if n == 'C' :
list1.append(100)
if n == 'D' :
list1.append(500)
if n == 'M' :
list1.append(1000)
lens = len(list1) #计算列表长度
while(m <= lens - 1):
if m ==lens - 1: #当m为列表最后一个元素时,直接加入num2中
num2 += list1[m]
break #退出循环
if list1[m] >= list1[m+1] : #当列表后一个元素的值大于等于前一个时,加入num2
num2 += list1[m]
m += 1 #指向下一个元素
continue #跳出本次循环
if list1[m] < list1[m+1] : #如果前一个元素的值小于后一个时
num2 += list1[m+1] - list1[m] #用后一个元素的值减去前一个,加入num2
m += 2 #因为这次用了两个元素,所以直接指向后两个元素
return num2
题库来源:https://leetcode-cn.com/