You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 01:30:24