我通过了测试用例,但未能验证,为什么?

2024-09-30 12:22:35 发布

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

我有类似的问题将Njundong的帖子Why could this code possibly be failing a test case?,其中我失败的5个案件中的两个

foobar:~/power_hungry user$ verify solution.py 
Verifying solution...

Test 1 passed!
Test 2 passed!
Test 3 failed.
Test 4 failed.
Test 5 passed! 

无法找出代码失败的原因,请参见以下内容:

^{pr2}$

我的代码通过了给定的两个测试用例(见下文)我缺少什么?请告知

测试用例

输入: (int list)xs=[2,0,2,2,0] 输出: (字符串)“8”

输入: (int list)xs=[-2,-3,4,-5] 输出: (字符串)“60”

电力饥渴

兰姆达指挥官的空间站很大。巨大的空间站需要大量的电力。装有世界末日装置的大型空间站需要更多的电力。为了满足空间站的电力需求,兰姆达指挥官在空间站的外表面安装了太阳能电池板。但是这个空间站位于类星体量子通量场的中间,这会对太阳能电池板造成严重破坏。你和你的部下已经被派去修理太阳能电池板,但是如果不关闭空间站(以及所有那些讨厌的生命维持系统),你不可能一下子把它们全部拆除。在

您需要弄清楚在任何给定阵列中,哪些面板可以脱机修复,同时仍然保持每个阵列的最大输出功率,为此,您首先需要确定每个阵列的最大输出量。编写一个函数answer(xs),它接受一个表示数组中每个面板的功率输出级别的整数列表,并返回这些数字的某些非空子集的最大乘积。例如,如果一个数组包含功率输出电平为[2,-3,1,0,-5]的面板,则取子集xs[0]=2,xs[1]=-3,xs[4]=-5,得到乘积2*(-3)*(-5)=30,从而得到最大乘积。所以答案([2,-3,1,0,-5])将是“30”。在

每个太阳能电池板阵列至少包含1个,不超过50个电池板,每个电池板的功率输出水平的绝对值不超过1000(有些电池板故障严重,正在消耗能量,但是你知道面板的波浪稳定器有个诀窍,可以让你把两个负输出面板组合起来,产生功率值倍数的正输出)。最终的产品可能非常大,所以以数字的字符串表示给出答案。在

测试用例

输入: (int list)xs=[2,0,2,2,0] 输出: (字符串)“8”

输入: (int list)xs=[-2,-3,4,-5] 输出: (字符串)“60”

修订代码2

计算单个负数和返回字符串

def answer(xs):
    negArr = 0
    product = 1
    for number in xs:
        if number < 0:
            negArr += 1
    xs.sort()
    while 0 in xs: xs.remove(0)
    print(xs)
    if not xs:
        return 0
    if len(xs) == 1:
        if xs[0] < 0:
            return 0
    elif negArr % 2 != 0:
        xs.pop(negArr-1)
    for x in xs:
        product *= x
    return str(product)

Tags: 字符串代码test面板if功率空间站list
2条回答

这是中奖彩票:

def answer(xs):
    negArr = 0
    product = 1
    for number in xs:
        if number < 0:
            negArr += 1
    xs.sort()
    if not xs:
        return 0
    if len(xs) == 1:
        return xs[0]
    while 0 in xs: xs.remove(0)
    if negArr % 2 != 0:
        xs.pop(negArr-1)
    for x in xs:
        product *= x
    print(xs)
    if len(xs) == 0:
        return str(0)
    else:
        return str(product)

你没有考虑到一些边缘情况:

  1. 单个负数[-8]
  2. 0和1负数[0,0,-8,0]
  3. 0的[0,0,0]

相关问题 更多 >

    热门问题