2013-11-09 50 views
2

我在使用Python的SPOJ中做了幾個問題。 我有一些正確的。休息一下,我大部分時間都在收購NZEC。 我在代碼的最後添加了sys.exit(0)。但它仍然顯示相同。我的每一個python代碼都給出了SPOJ中的NZEC

我想知道我的一些寫作實踐是否犯了這個錯誤。請提出任何更改。 我認爲我的算法是寫,但如果它錯了,PLZ建議任何更改。

以下是問題的鏈接。

http://www.spoj.com/problems/NSTEPS/

def check_num(m,n): 
    if(m!=n and m!=n+2): 
     return 0; 
    elif(m==n) : 
     if(m%2==1): 
      a=int((m+1)/2)-1; 
      return (1+a*4); 
     else : 
      a=int(m*2); 
      return(a); 
    elif(m==n+2): 
     if(n%2==1): 
      a=int((n+1)/2)+1; 
      return (3+a*4); 
     else : 
      a=int(n*2); 
      return(2+a);    
import sys; 
inp=sys.stdin.read().split("\n"); 
N=int(inp[0]); 
i=1; 
l=dict(); 
b=dict(); 
c=dict(); 
for i in range(1,N+1): 
    a=inp[i]; 
    k=0; 
    b[i],c[i]=[int(a[k]),int(a[k+2])]; 
    if (b[i]==0 and c[i]==0): 
     l[i]=0; 
    else : 
    l[i]=check_num(b[i],c[i]); 
for i in range(1,N+1): 
    if (l[i]==0): 
     if (c[i]==0 and b[i]==0): 
      print l[i]; 
     else: 
      print "No Number"; 
    else : 
     print l[i]; 
sys.exit(0) 

在此先感謝。

回答

0

基本上你得到NZEC錯誤,或者當你試圖訪問數組大於它的大小,或一些測試用例您的程序可以無限運行運行時錯誤...

在最後,他們可能是一些邏輯錯誤在你的代碼中,在代碼中嘗試極端的測試用例。

由於在spoj中,網站沒有得到正確的維護,對於一些我試過的問題,我得到了python和java的tle,但在C和C++中獲得了AC。發生這種情況bcz問題的setter沒有設置 正確的時間。這種事情對我來說發生了很多。

編碼愉快

0

NZEC多半是由於數組索引。例如:一個一般的例子:string s =''; '[0] ='a'會給NZEC 另外數組索引越界會給NZEC

你應該儘量避免數組索引。而是使用像'for..in'這樣的結構

0

嘗試將製表替換爲空格。大輸出也會導致問題,所以請嘗試使用sys.stdout.write()和sys.stdout.flush()。另一個常常會導致:在參數爲none或格式不正確時調用list,int('423 \ n')或其他函數(參數)的邊界,在讀取所有輸入後調用sys.stdin.readline()將導致未處理的異常,其他沒有處理的例外。

相關問題