2017-07-06 10 views
0

以下のコードは、サイズが10,100,1000,10000、および100000の配列に対して正しい整数が返されますが、「Max Buffer reached:Too多くの情報がstdoutに書き込まれました。プロセスはSIGKILLシグナルで早期に終了しました。 "Pythonのリストからの算術進行中に見つからない整数を見つける

これはコードワードの演習を完了できません。私は間違って何かしていますか?何とかそこにこの演習を完了するための正しい方法はある、と私は、例えば、私はzip()itertools.count()は、この問題を解決しないと正しく質問を理解していれば、私はそれ

def find_missing(sequence): 
    s1 = []  
    a = sequence[1] - sequence[0] 
    c = sequence[0] 
    s1.append(c) 
    for x in range(0,len(sequence)): 
     c += a 
     s1.append(c) 

    d = set(s1) 
    e = set(sequence) 
    print(d) 
    print(e) 
    f = [i for i in d if i not in e] 

    return f[0] 
+1

あなたはセットを 'print()'していますか? – AChampion

+0

オハイオ州私のgawd私はとてもダムです。ありがとうございました! –

答えて

0

を持っていたと思った:

import itertools as it 

def find_missing(sequence): 
    for x, y in zip(it.count(sequence[0], sequence[1]-sequence[0]), sequence): 
     if x != y: 
      return x 

注意:診断print()がおそらくあなたの問題です。

0

エラーメッセージに「あまりにも多くの情報がstdoutに書き込まれました」というメッセージが表示されます。

print()コールを削除します - 標準出力はの出力が書き込まれるので、Codewarsサーバーはあまり印刷しないと思われます。

0

バッファをフラッシュできます。 print(a, flush=True)のようなprintステートメントを使用し、それが機能するかどうか確認してください。または、印刷文を削除するだけです。

関連する問題