###本题思路主要是罗马数字的表示等于每个字符对应value的重复相加减
lass Solution:
R_list={
'I':1,
'V':5,
'X':10,
'L':50,
'C':100,
'D':500,
'M':1000
}#建立一个list列表
def romanToInt(self, s: str) -> int:
ans=0
for i,num in enumerate(s):
if i<len(s)-1 and Solution.R_list[s[i]]<Solution.R_list[s[i+1]]:#6种特殊情况,当左边的值小于右边时
ans -= Solution.R_list[s[i]]
else: ans += Solution.R_list[s[i]]#大部分情况:通常情况下,罗马数字中小的数字在大的数字的右边,相加即可
return ans
if __name__ == '__main__':
s = "IV"
a = Solution()
print(a.romanToInt(s))
【leetcode系列】小菜鸡的leetcode第3题:罗马数字转整数
最新推荐文章于 2024-09-30 14:51:11 发布