2016-10-17 3 views
4

私はhackerrankに関する問題を解決しています。私はPythonの初心者です。Python - いくつかのテストケースが失敗するのはなぜですか?

ここで見つける私はDOIをしようとしているかについての情報:https://www.hackerrank.com/challenges/compare-the-triplets?h_r=next-challenge&h_v=zen

a0,a1,a2 = input().strip().split(' ') 
a0,a1,a2 = [int(a0),int(a1),int(a2)] 
b0,b1,b2 = input().strip().split(' ') 
b0,b1,b2 = [int(b0),int(b1),int(b2)] 

a1 = 0 
b1 = 0 
lst1 = a0,a1,a2 
lst2 = b0,b1,b2 

for x, y in zip(lst1, lst2): 
    if x > y: 
     a1 += 1 

    if x <y: 
     b1 += 1 

    else: 
     pass 

print(a1, b1) 

だから、これは完璧に動作します。

しかし、テストケースの一つに、入力が

6 8 12 
7 9 15 

で、私のコードは、それを失敗し続けるしかし、出力が

0 3 

でなければなりません。なぜこれはそうですか?

+0

どのように正確に失敗しますか? –

+0

@LegoStormtroopr正しい出力が得られていないため、ドキュメントテストに失敗しています。どのような出力が得られているのかよく分かりませんが、私のコードを使ってサイトで同じことを試みることができます。 – Theo

+0

シェイクスピアのランダムなソネットをプリントアウトしていますか?正確にどのように失敗しています。それは何の出力ですか? –

答えて

3

多分、コード内のa1、b1のvaribale名を他の名前に変更する必要があります。それが必要な理由は彼らが同じ名前として/ B1、A1の入力を削除します

.... 
a1 = 0 
b1 = 0 
... 

、私は表示されません:)

a0,a1,a2 = [int(a0),int(a1),int(a2)] 
b0,b1,b2 = [int(b0),int(b1),int(b2)] 
+0

ああうわー!良いキャッチ、私は完全にそれを逃した。変数を何か他のものに変更すると動作します。 – Theo

4

私はこれで2つの問題を発見します。 1.変数名は同じです。リストにはa1、別の変数としてa1を通知します。 2. printの代わりに '{0} {1}'を使用することもできます。フォーマット(a1、b1) input()の代わりにraw_input()を使用することをお勧めします。

関連する問題