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

如何解决Python TypeError: __init__() missing 1 required positional argument报错

问题排查与修复方案

报错根因

  • 你自定义的Solution类__init__构造方法要求强制传入arr参数,但刷题平台的内置测试驱动逻辑为:无参数实例化Solution类,再将测试用例参数直接传入minDeletionSize方法,二者逻辑不匹配导致参数缺失报错。
  • 你当前的minDeletionSize实现逻辑和通用「删列造序」类题目的要求不符:现有逻辑是遍历判断每个字符串是否为正序/逆序,统计不符合要求的字符串数量,而题目通常要求统计不符合排序要求的列数。

修复后代码

class Solution:
    # 移除构造方法的自定义入参,适配平台调用规则
    def minDeletionSize(self, arr):
        cnt = 0
        # 遍历每一列判断是否符合升序要求
        for col_idx in range(len(arr[0])):
            # 提取当前列的所有字符
            col_chars = [arr[row_idx][col_idx] for row_idx in range(len(arr))]
            if col_chars != sorted(col_chars):
                cnt += 1
        return cnt

if __name__ == '__main__':
    arrays = [["cba","daf","ghi"],["a","b"],["zyx","wvu","tsr"]]
    obj = Solution()
    for arr in arrays:
        print(obj.minDeletionSize(arr))

调用调整说明

本地测试时也需要同步调整调用逻辑:实例化Solution类无需传入参数,直接将测试数组作为入参调用minDeletionSize方法即可。如果你的业务需求就是判断单个字符串是否为正/逆序,仅需调整方法内的判断逻辑,构造方法的修改规则不变。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 15:06:02