2012-10-03 103 views
0

我想一個問題,就是如下運行時錯誤(NZEC)的Python

Master Shifu is organizing a quiz for Po. The quiz consists of N multiple-choice 
questions, conveniently numbered 0 through N-1. For each question there are three possible answers labeled A, B, and C. For each question, exactly one of the three possible 
answers is correct. You are given the information on correct answers as a String answers. 
More precisely, answers[i] is the correct answer to the i-th question. This is of course unknown to Po. 


    Po did not know the answer to any of the quiz questions. Being desperate, he with some 
help from Tigress,Mantis,Crane,Viper and Monkey he got the answer script. However, the only 
thing he could obtain was aggregate information on the answers that will be used. More 
precisely, Po now knows how many questions have the answer A, how many have the answer B, 
and how many have the answer C. 


    When taking the quiz, Po will be given the questions one at a time, in the same order 
that is used in answers. For each of the questions, he will use his intuition to pick one 
of the answers that are still possible. After he picks the answer for a question, Master 
Shifu will tell him the correct answer for that question. Po has noticed that sometimes he 
can rule out some of the answers when answering a question. Your task is to help Po by 
telling him the number of options he will choose from when answering i-th question. 

Constraints: 

1<=N<=50 

Each character of answers will be 'A', 'B', or 'C'. 





Input 

First line will contain the number of test cases, T. Then T lines follow each containg the string of answers. 

Output 

Output an array of N numbers, where i-th element will tell the number of options Po will choose from when answering i-th question. 

我在Python編寫的代碼是

from collections import Counter 
t = int(raw_input()) 
for i in range(t): 
    po = [] 
    s = raw_input() 
    a = Counter(s) 
    options = 3 
    for x in s: 
     na = a['A'] 
     nb = a['B'] 
     nc = a['C'] 
     if na == 0 or nb == 0 or nc == 0: 
      options = 2 
     if (na == 0 and nb == 0) or (nb == 0 and nc == 0) or (nc == 0 and na == 0): 
      options = 1 
     if (na == 0 and nb == 0 and nc == 0): 
      options = 0 
     po.append(options) 
     a[x] -= 1 
    out = "" 
    for x in po: 
     out += str(x) + " " 
    print out 

我收到運行時錯誤(NZEC),因爲我跑在SPOJ門戶網站的代碼,但我糾正ideone輸出(http://ideone.com/WseoQ)

Input: 
4 
AAAAA 
AAABBB 
CAAAAAC 
BBCA 

回答

0

我懷疑你所得到的NZEC由於額外的空白輸入中的空格。您可以嘗試一次輸入並用空格標記它。

from collections import Counter 
import sys 
tokenizedInput = sys.stdin.read().split() 
t = int(tokenizedInput[0]) 
for i in range(t): 
    po = [] 
    s = tokenizedInput[i+1] 

我希望有幫助。