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

LeetCode第20题有效括号代码调试遇必选参数缺失问题求助

问题分析与修复方案

你的代码里有两个明确问题导致报错,逐个解决:

1. 实例方法调用方式错误

isValid是Solution类的实例方法,直接用Solution.isValid("{[]}")调用时,Python会把字符串"{[]}"当作第一个参数self(实例本身),而非方法需要的s参数,因此会提示“缺少必需的位置参数”。

正确的调用方式是先创建类的实例,再调用方法:

sol = Solution()
print(sol.isValid("{[]}"))

2. 变量名拼写错误

代码里定义的括号映射字典叫parenthesis,但判断逻辑里写成了paren[i]——这个未定义的变量会触发NameError,也是你创建实例后仍报错的核心原因。

把paren[i]改成parenthesis[i]即可。

修复后的完整代码

class Solution:
    def isValid(self, s: str) -> bool:
        parenthesis = {"}":"{", 
        "]":"[", 
        ")":"("
        }
        stack = []
        for i in s:
           if i in parenthesis:
               # 修复变量名拼写错误
               if not stack or parenthesis[i] != stack[-1]: 
                   return False
           
               else:
                    stack.pop()
           else:
                stack.append(i)
        return stack == []

# 正确调用示例
sol = Solution()
print(sol.isValid("{[]}"))  # 输出 True

内容的提问来源于stack exchange,提问作者William Chen

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 20:35:27