第34行:TypeError:\uyu init_uu()正好接受3个参数(给定1个)

2024-10-01 11:20:18 发布

您现在位置:Python中文网/ 问答频道 /正文

class Solution:
    def __init__(self, secret, guess):
        self.secret = secret
        self.guess = guess
    def getHint(self):
        right=0; wrong=0
        listSecret = list(self.secret)
        listGuess = list(self.guess)
        for i in range(len(listSecret)):
            if listSecret[i] == listGuess[i]:
                right = right + 1
            else:
                wrong = wrong + 1
        return str(right)+ "A" + str(wrong) + "B"
guessG = raw_input("")
secretS = raw_input("")
print Solution(str(guessG), str(secretS)).getHint()

当我在pycharm中运行代码时,它是有效的。但是,当我将代码提交给leetcode时,它会警告“运行时错误”,如图所示。在

enter image description here


Tags: selfrightinputsecretrawdeflistsolution
1条回答
网友
1楼 · 发布于 2024-10-01 11:20:18

这是一个leetcode服务问题

与测试驱动程序和程序之间使用标准IO进行通信时流行的格式不同,此服务提供了另一种方式。在

在开始的时候,您会得到一个隐含地声明通信接口的代码片段。您不应该更改它,即更改方法签名,包括构造函数签名。然后,您的输入作为参数传递给代码段方法,结果应为其方法返回值。在

它的工作原理和奇怪错误的产生方式

您在在线编辑器中传递的代码被生成该行为的其他代码激怒。在

为了验证这个想法,我编写了一个程序来打印自己的代码(通过修改给定的代码片段):

class Solution(object):
    def getHint(self, secret, guess):
        """
        :type secret: str
        :type guess: str
        :rtype: str
        """

import sys        
print sys.argv ## this prints program arguments

## argv[0] is the name of file being executed. Just print it!
with open(sys.argv[0], 'r') as fin:
    print fin.read()

对codeleet服务执行的结果是

^{pr2}$

这显示了正在执行的整个程序。正如您所注意到的,它是您自己代码的一个扩展版本。版本有以下几行:

ret = Solution().getHint(
                    param_1, param_2
                )

他们是你问题的根源

相关问题 更多 >