谷歌FooBar意外失败的估值

2024-05-17 00:08:47 发布

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

我正在处理一个googlefoobar挑战,测试用例似乎不正确;下面是重点。在

return the product of non-empty subset of those numbers. Example [2, -3, 1, 0, -5], 
would be: xs[0] = 2, xs[1] = -3, xs[4] = -5, 

giving the product 2*(-3)*(-5) = 30.  
            So answer([2,-3,1,0,-5]) will be "30".

考虑到以下因素:

案例1:

^{pr2}$

案例2:

Inputs:
    (int list) xs = [-2, -3, 4, -5]
Output:
    (string) "60"

60的“预期结果”让我困惑,预期结果不是应该是120吗?当我提交以下代码时:

 def answer(xs):
    runningTotal = ""
    for i in range(0, len(x)):
        if x[i] != 0:
            runningTotal = runningTotal + "(" + str(x[i]) +")" + " * "

    answer = runningTotal.replace("-","")[:-3]
    return str(eval(answer))

它通过了测试1,但没有通过测试2(以及测试3、4、5,我没有给出测试条件)。是我遗漏了什么,还是可能这是谷歌预期结果的错误?下面是整个指令集。在

电力饥渴

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

你需要弄清楚在任何给定的阵列中,哪些面板可以脱机修复,同时仍然保持每个阵列的最大功率输出量,为此,您将 首先需要弄清楚每个数组的最大输出是多少。编写一个函数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(有些电池板 故障如此严重,以至于它们正在消耗能量,但是你知道面板的波浪稳定器的一个诀窍,可以让你把两个负输出面板组合起来产生正的输出 输出功率值的倍数)。最终的产品可能非常大,所以以数字的字符串表示给出答案。在

语言

要提供Python解决方案,请编辑解决方案.py 要提供Java解决方案,请编辑解决方案.java在

测试用例

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

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

使用verify[file]来测试您的解决方案,看看它是如何工作的。编辑完代码后,使用submit[文件]提交答案。如果您的解决方案通过测试用例,它将 从主文件夹中删除。在

[编辑]

我调整了我的代码如下并且我的所有测试用例都按预期返回,但是现在除了第一个测试之外,所有测试都失败了(尽管我可以访问案例1和案例2,它们都在我的本地计算机上返回预期的结果);有几分钟测试用例没有出现在自述文件.txt但在注销并重新登录后,它又回到了原始文件。我是不是很微妙地漏掉了一些,或者这可能是他们系统上的一个错误(我只是问,因为我希望通过他们的前两个测试,因为我通过了第一个测试(意味着我的返回类型是正确的),而第二个测试失败,即使他们的“输出”和我的匹配。**请不要给出代码示例,正如Fayaz所指出的,这是一个挑战,我不钓鱼为别人做这代表我(这将是什么乐趣?!)。在

[编辑] 重新启动计算机后,我注意到我稍微放大了一下,它正在切断文本(这很尴尬),我也注意到过了一会儿,我的代码做出了假设如果值小于0,则0为默认值,清除该值无效。经过那次小小的调整,一切都过去了,我又活了一天去编码。非常感谢你们的帮助/支持!在


Tags: 代码answer面板编辑测试用例解决方案功率空间站
2条回答

input=[-2,-3,4,-5]的输出应该是60。 我来告诉你为什么? 我想你得到120个as(-2)*(-3)4(-5)。 但是,此操作的结果是-120,这是此输入可能的最小乘积。 子集(-3)4(-5)的输出应为60。在

如果您有幸被邀请参加foobar挑战赛,我认为您应该能够对代码进行更改以适应这种情况。 祝你一切顺利!在

[-2, -3, 4, -5] = -120

所以有最高乘积的子集是

^{pr2}$

应将-2从子集中排除,以获得最大乘积。在

相关问题 更多 >