我正在处理一个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为默认值,清除该值无效。经过那次小小的调整,一切都过去了,我又活了一天去编码。非常感谢你们的帮助/支持!在
input=[-2,-3,4,-5]的输出应该是60。 我来告诉你为什么? 我想你得到120个as(-2)*(-3)4(-5)。 但是,此操作的结果是-120,这是此输入可能的最小乘积。 子集(-3)4(-5)的输出应为60。在
如果您有幸被邀请参加foobar挑战赛,我认为您应该能够对代码进行更改以适应这种情况。 祝你一切顺利!在
所以有最高乘积的子集是
^{pr2}$应将-2从子集中排除,以获得最大乘积。在
相关问题 更多 >
编程相关推荐