罗马数字转换成阿拉伯数字
Roman to integer
给出一个罗马数字(字符串),返回此数字的阿拉伯数字(int)
Given a roman numeral, convert it to an integer.
Input is guaranteed to be within the range from 1 to 3999.
example 1
input: CCCLXXXIX
output: 389
思路
- dict存储单个罗马字母代表的阿拉伯数字
- 初始状态
sum = 0,循环遍历字符串,如果s[i]所代表的阿拉伯数字大于s[i+1]的,则加到sum上,如果小于,则sum减去s[i]代表的阿拉伯数字
代码
class Solution(object):
def romanToInt(self, s):
"""
:type s: str
:rtype: int
"""
a = {'M': 1000, 'D': 500, 'C': 100, 'L': 50, 'X': 10, 'V': 5, 'I': 1}
sum = 0
for i in range(len(s) - 1): #range右边界len(s) - 1 保证 i + 1不会下标越界
if a[s[i]] < a[s[i+1]]:
sum -= a[s[i]]
else:
sum += a[s[i]]
return sum + a[s[len(s) - 1]]
本题以及其它leetcode题目代码github地址: github地址

183

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



