2016-09-21 13 views
3

私はGoogle FooBarチャレンジに取り組んでおり、テストケースが正しくないようです。以下はハイライトです。Google FooBar予期しない評価がありません

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:

Inputs: 
     (int list) xs = [2, 0, 2, 2, 0] 
Output: 
    (string) "8" 

ケース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)に失敗します。私が紛失しているものがありますか、それともGoogleの予期した結果に誤りがある可能性がありますか?以下は、命令セット全体です。

パワーハングリー

ラムダの宇宙ステーションは大型です。そして巨大な宇宙ステーションはたくさんの力を持っています。最悪の日曜日のデバイスを搭載した巨大な宇宙ステーションは、さらに大きなパワーを奪う。駅の電力である のニーズを満たすために、ラムダ司令官は駅の外面に太陽電池パネルを設置しました。しかし、ステーションは、太陽の光の上に壊れた準量子力場の真ん中に座っている。 あなたとあなたの仲間のチームはソーラーパネルを修理するように任命されていますが、宇宙ステーションをシャットダウンすることなく一度に取り下げることはできません。

アレイあたりの最大出力電力を維持しながら、オフラインで修復することができる特定のアレイのパネルセットを把握する必要があります。そうするには、まず に何を把握する必要がありますか各アレイの最大出力は実際には同じです。 配列内の各パネルの出力レベルを表す整数のリストを取得し、それらの数字の空でないサブセットの最大積を返す関数解答(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つのマイナス出力パネルを組み合わせてプラスの値(出力値の倍数の出力)を生成することができます。最終的な製品は非常に大きくなる可能性があるので、答えを数値の文字列表現として与えてください。

言語

はJavaソリューション、編集ソリューションを提供するためにsolution.py を編集し、Pythonのソリューションを提供します。ジャワ

テストケース

入力: (INTリスト)XS = [2,0、2、2、0] 出力: (文字列)、 "8"

入力: (INTリスト])xs = [-2、-3、4、-5] 出力: (文字列) "60"

[ファイル]を検証して、ソリューションがどのように動作するかを確認します。コードの編集が終わったら、submit [file]を使用して答えを提出してください。ソリューションがテストケースを通過する場合は、 がホームフォルダから削除されます。

Iは、ケース1と2の両方へのアクセス権を持っているにもかかわらず(に続き、私のテストケースのすべてがすべての今期待どおりに戻すが、しかし最初のテストが失敗したとして、私は 自分のコードを調整[EDIT]

私のローカルコンピュータで期待される結果を返す)。テストケースは数分の間readme.txtファイルには存在しませんでしたが、ログアウトしてから元のファイルに戻りました。私はいくつか微妙に不足しているか、これはシステム上のエラーである可能性があります(最初の2つのテストをパスすると期待しています(戻り値のタイプが正しいことを意味します) "と鉱山のマッチ**私が代わってこれをするために誰かのためにフィッシングするのではなく、Fayazが指摘したようにコード例を挙げないでください(どんな楽しいだろうか?)

[EDIT ] コンピュータを再起動した後、私はわずかにズームインしたことに気がつきました。それはテキストをカットしていました(それは恥ずかしいです)。私のコードは、値が0より小さい場合は0を仮定しました。その小さな調整がすべて終わった後、私は別の日にコードに生きています。ありがとうございました。ご協力いただきありがとうございます。

答えて

1

入力= [-2、-3、4、-5]の出力は60である必要があります。 私はあなたにその理由を教えますか? (-2)*( - 3)(-5)のように120になると思います。 この操作の結果は、この入力に対して可能な最小の製品である-120です。 出力はサブセット(-3)(-5)から60でなければなりません。

あなたがfoobarチャレンジのために招待される特権を持っているなら、これに対応するためにあなたのコードに変更を加えることができるはずです。 すべてベスト!

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

ので、最高の製品を有するサブセットは、

[-3,4,-5] = 60 

-2最大生成物を得るためにサブセットから除外すべきです。

関連する問題