#41810: 麻煩幫我看一下哪裡錯了 PYTHON NA:0%


deansuo1825@gmail.com (黃昱碩)

學校 : 不指定學校
編號 : 256775
來源 : []
最後登入時間 :
2023-11-25 09:56:15
g275. 1. 七言對聯 -- 2021年9月APCS | From: [36.236.137.244] | 發表日期 : 2024-08-29 01:16

n=int(input())
Q=[]
for i in range(n):
  m=list(map(int,input().split()))#first line
  o=list(map(int,input().split()))#second line
  if m[1]==m[3] or m[1]!=m[5] or o[1]==o[3] or o[1]!=o[5]:
    Q.append("A")
  if (m[6]==0 and o[6]==1) or (m[6]==1 and o[6]==0):
    pass
  else:
    Q.append("B")
  if m[1]==o[1] or m[3]==o[3] or m[5]==o[5]:
    Q.append("C")
  Q.append('\n')
if len(Q)==1:#"\n"算1格
  print("None")
else:
  for j in Q:
    print(j,end="")
 
#41813: Re: 麻煩幫我看一下哪裡錯了 PYTHON NA:0%


leeguanhan0909@gmail.com (李冠翰)

學校 : 高雄市苓雅區復華高級中學國中部
編號 : 276558
來源 : [36.238.157.177]
最後登入時間 :
2024-11-13 23:08:53
g275. 1. 七言對聯 -- 2021年9月APCS | From: [36.238.180.68] | 發表日期 : 2024-08-29 03:13

n=int(input())
Q=[]
for i in range(n):
  m=list(map(int,input().split()))#first line
  o=list(map(int,input().split()))#second line
  if m[1]==m[3] or m[1]!=m[5] or o[1]==o[3] or o[1]!=o[5]:
    Q.append("A")
  if (m[6]==0 and o[6]==1) or (m[6]==1 and o[6]==0):
    pass
  else:
    Q.append("B")
  if m[1]==o[1] or m[3]==o[3] or m[5]==o[5]:
    Q.append("C")
  Q.append('\n')
if len(Q)==1:#"\n"算1格
  print("None")
else:
  for j in Q:
    print(j,end="")

有兩個錯誤

第一個是判斷B時,只有第一句結尾是仄聲與第二句結尾是平聲這個條件,不可顛倒。

第二個是在判斷None時,如果Q之前已經有資料,那就算這次沒有新添加A或B或C,但由於長度不為1,所以依舊None。

 

改正(針對None)

我會建議每一次比對2組時都把Q清空,就不用添加"\n"(print預設結尾是"\n")。如果想要盡量維持Q在迴圈外,可以新開變數last_len記錄上次長度,先處理None再添加"\n"如果上次長度與現在長度一樣,代表沒有違反任意ABC,所以添加None,處理完後在添加"\n"。如果輸出最後多一行空行,最後用pop(應該不用)。如果還有問題歡迎詢問。

 
ZeroJudge Forum