私はGoogle Foobarチャレンジpower_hungry(下記参照)を行っています。Google Foobarチャレンジで失敗する2件中2件のテストケース
次のコードが#3と#5のテストケースで失敗する理由を理解できません。誰かが私が行方不明であることを見ることができる?私は最悪の場合を考えなかったのですか?ここで
は私のPythonコードである:ここで
from functools import reduce
import operator
def get_pair_prod(xs):
if len(xs) < 2:
return 1
xs.sort()
return xs[0] * xs[1]
def answer(xs):
if len(xs) == 0:
return "0"
positive = [x for x in xs if x > 0]
negative = [x for x in xs if x < 0]
if len(negative) == 1 and len(positive) == 0:
return str(negative[0])
elif len(negative) == 0 and len(positive) == 0:
return str("0")
positive.append(get_pair_prod(negative))
return str(reduce(operator.mul, positive, 1))
は挑戦です:
パワーハングリー
司令ラムダの宇宙ステーションは巨大です。そして巨大な宇宙ステーションはたくさんの力を持っています。最悪の日曜日のデバイスを搭載した巨大な宇宙ステーションは、さらに大きなパワーを奪う。駅の電力需要を満たすために、ラムダ司令官は駅の外面に太陽電池パネルを設置しました。しかし、ステーションは、太陽電池パネルに大混乱を引き起こすクェーサー量子束場の真ん中に座っている。あなたとあなたの仲間のチームはソーラーパネルを修理するように任命されていますが、宇宙ステーションをシャットダウンすることなくそれらを一度にダウンすることはできません。
アレイごとに最大出力電力を維持しながら、オフラインで修復することができる特定のアレイのパネルセットを把握しておく必要があります。各アレイの最大出力は実際には同じです。配列内の各パネルの出力レベルを表す整数のリストを取得し、それらの数字の空でないサブセットの最大積を返す関数解答(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以下の電源出力レベルが設定されています(一部のパネルは誤動作していますしかし、2つの負の出力パネルを組み合わせて、その電力値の倍数の正の出力を生成することができる、パネルの波安定剤を使ったトリックを知っています。最終的な製品は非常に大きくなる可能性があるので、答えを数値の文字列表現として与えてください。
言語
solution.java
テストケースを編集
入力、Javaソリューションを提供するためにsolution.py を編集し、Pythonのソリューションを提供する:2 - [(INTリスト)XS = 0、2、2、0]出力:(文字列) "8"
入力:(intリスト)xs = [-2、-3、4、-5]出力:(文字列) "60"
verify [file]を使用してソリューションをテストし、その結果を確認します。コードの編集が終わったら、submit [file]を使用して答えを提出してください。ソリューションがテストケースを通過すると、ホームフォルダから削除されます。
ウェルコム他の人があなたをより効果的に助けることができるようにこれを見てください:https://stackoverflow.com/help/mcve – petezurich
@petezurich:ありがとうございます。私のコードは、私が決定できる限り、最小限です。しかし、完全には、この問題の本質は、私が** 2つの失敗したテストケースの入力**を知らないということです。そのため、エラーに関する詳細は提供できません。エラーを検証できるという意味で、最初にエラーが何であったかを把握してここで確認することができれば、ロジックの瑕疵がどこにあるかを判断する際に助けを求めることはありません。私のコードはすべてのテストケースを通過するので、重要なケースをテストする必要はありません。 –
私は自分のエラーを見つけました。私は最初に挑戦を誤解していました。何らかの理由で、絶対値が最も大きい2つのネガのみが製品に含まれると誤って考えました。 –