罗马数字转整数
作者:互联网
题目
思路
从左往右一位一位的看,如果这一位数字比它右边一位的数字大或与其相等,则加上这一位代表的值,如果它比右边一位小,则减去这一位代表的数字。位与后一位的比较只需进行到倒数第二位即可,因为最后一位没有比它小的一位能够进行比较,直接加上最后一位代表的值即可。
def romanToInt(self, s: str) -> int:
roma_nums = {'M':1000,'D':500,'C':100,'L':50,'X':10,'V':5,'I':1}
num = 0
for i in range(len(s)-1):
if roma_nums[s[i]]>=roma_nums[s[i+1]]: %如果当前位的数比他下一位的数大
num += roma_nums[s[i]] %num加上当前这位的数
else:
num -= roma_nums[s[i]] %否则减去当前位数的数
last_num = s[len(s)-1]
num = num + roma_nums[last_num] %前面位数得到num直接加上最后一位的数字
return num
标签:数字,nums,整数,一位,罗马数字,num,len,roma 来源: https://blog.csdn.net/MercuryG/article/details/101169874