LeetCode romanToInt(罗马数字转整数)代码语法错误求助
解决罗马数字转整数代码的语法错误问题
错误原因分析
你的代码里存在几处HTML实体转义字符,Python解释器无法识别这些字符,导致语法错误:
- 函数定义中的返回类型标记用了
->(HTML转义后的箭头),Python需要原生的-> - if判断中的比较运算符用了
>(HTML转义后的大于号),要替换为原生的> - 类名
solution不符合LeetCode提交规范,必须写成Solution(虽不是语法错误,但会导致提交失败)
修正后的代码
class Solution: def romanToInt(self, s: str) -> int: ROMANS = {'I': 1, 'V': 5, 'X': 10, 'L': 50, 'C': 100, 'D': 500, 'M': 1000} number = 0 for i in range(len(s) - 1): if ROMANS[s[i + 1]] > ROMANS[s[i]]: number -= ROMANS[s[i]] else: number += ROMANS[s[i]] number += ROMANS[s[len(s) - 1]] return number
逻辑验证
修正后的代码逻辑正确:遍历罗马数字字符串,当当前字符对应数值小于下一个字符时,减去当前值;否则加上当前值,最后补上最后一个字符的数值,完全符合罗马数字的转换规则。
内容的提问来源于stack exchange,提问作者Vaibhav
相关产品推荐
相关产品推荐

