2017-03-21 4 views
0

私は自分のプログラムでコーディングのデモの問題を解決しようとしています。 私は自分自身でそれを実行していますが、私は正常に平衡を検出します。しかし、それは常に私の答えが私の答えを評価するときに正しくないことを示しています。ここ は私のコードです:この出来事はなぜPythonとの均衡を解く

i = 0 
for N in range(0, len(A)-1): 
    lnum = 0 
    rnum = 0 
    if N == 0: 
     lnum = 0 
    elif N ==1: 
     lnum = A[0] 
    else: 
     for num1 in A[:N-1]: 
      lnum += num1 

    for num2 in A[N+1:]: 
     rnum += num2 

    if lnum == rnum: 
     return N 
return -1 

は、誰も私に説明できますか? ps:Nが0の場合は、左辺の合計が0になり、Nが1に等しい場合、A[0:0]は数字インデックス0のポイントを与えないため、2つのifステートメントを使用します。

+0

コードをフォーマットしてください。 – Shadow

+0

@ shadow、申し訳ありません最初の投稿。今修正されました。 – LVmiao

答えて

0
def solution(A): 
    l=len(A) 
    for i in range(0,l): 
     lnum=0     #reset the sum of left to zero for every index 
     rnum=0     #  ""   right   "" 
     for numl in range(0,i):   #sum up all values on left indices 
      lnum+=A[numl] 
     for numr in range(i+1,l):  #sum up all values on the right indices 
      rnum+=A[numr] 
     if lnum==rnum:     #if the sum of left is equal to right... 
      return i     #return the index of equilibrium 
     else: 
      pass 
    return -1 #no equilibrium! 

これは95% Codilityはあなたのコード上で実行されている独自のテストケースを持っているので、自分自身の環境でコードをテストすることはcodility上のパスを保証するものではありません動作するはずです。

+0

私が作った間違いを見る、ありがとう – LVmiao

関連する問題