题目:给定一个罗马数字,将其转换成整数。返回的结果要求在 1 到 3999 的范围内。
python代码:
class Solution:
def romanToInt(self, s):
sum = 0
convert = {'I':1,'V':5,'X':10,'L':50,'C':100,'D':500,'M':1000}
for i in range(len(s)-1):
if convert[s[i]] < convert[s[i+1]]:
sum -= convert[s[i]]
else:
sum += convert[s[i]]
return sum + convert[s[-1]]心得:刚看到这道题是没有思路的,因为从来没太关注过罗马数字,更不知道如何与整数转换,看完规则之后,此题基本得到解决,需要注意的一点是在遍历s的时候,要遍历到倒数第二个,否则会发生越界错误,因为如果i可以是最后一个元素的话,在执行if语句的时候i+1位置不存在。另外,知道了罗马数字好复杂。o(* ̄︶ ̄*)o备注:罗马数字与整数的转换规则:
罗马数字表示法,基本字符有7个:I,V,X,L,C,D,M,分别表示1,5,10,50,100,500,1000,在构成数字的时候,有下列规则:
1、相同的数字连写,所表示的数等于这些数字相加得到的数,如:Ⅲ = 3;
2、小的数字在大的数字的右边,所表示的数等于这些数字相加得到的数, 如:Ⅷ = 8;Ⅻ = 12;
3、小的数字,(限于Ⅰ、X 和C)在大的数字的左边,所表示的数等于大数减小数得到的数,如:Ⅳ= 4;Ⅸ= 9;
4、正常使用时,连写的数字重复不得超过三次。
版权声明:本文为博主原创文章,未经允许不得转载。https://blog.youkuaiyun.com/cuicheng01/article/details/79835374
本文提供了一种将罗马数字转换为整数的方法,并通过Python代码实现了这一转换过程。重点介绍了罗马数字的基本规则及其与整数之间的转换逻辑。
368

被折叠的 条评论
为什么被折叠?



