根據題目所述
多組測資,每組第一行是密碼的位數,若為 A 則代表結束;
接下來有兩行,分別代表 G 碼 A 和 G 碼 B
實際嘗試後發現報錯了,其實題目提示也有說就是,所以不意外。
我的輸入方式(python):
while True: |
--
根據題目提示所述
題目是讀到 EOF 時結束,並保證 G 碼 A 和 G 碼 B 位數相等
實際嘗試後這也是錯的,若預設 G 碼 A 和 G 碼 B 位數相等,可以過測資#0,但其他的全都會吃 IndexError
很顯然,有兩個可能的原因: (1)題目輸入格式並非三行一組, (2)測資並不保證 G 碼 A 和 G 碼 B 位數相等
修改後的輸入方式(python)
while True: |
--
於是我又嘗試了第三種狀態: 考慮 G 碼 A 和 G 碼 B 長度不相等的情況
可以過測資#0,且不再報錯,但依然只有#0可以得到正確答案,其他的全錯。
輸入方式同上
--
到這個階段,我猜測題目的測資格式為第一行有一個G碼,代表密碼長度(?)
之後有多組測資,每組測資占用兩行,分別代表 G 碼 A 和 G 碼 B
實際嘗試後,並選擇相信所有密碼長度都是相等的,在測資#0 遇到 IndexError,但除了 #0 以外的全部都通過了
修改後的輸入方式(python)
input() |
--
根據幾次嘗試的結果
測資#0 的格式為每組測資三行,第一行是密碼長度(?),第二、三行代表G碼A和G碼B
測資#1 ~ 測資#3 的格式為輸入第一行為密碼長度(?),之後每組測資占用2行,分別代表G碼A和G碼B
輸入皆到 EOF 為止
想問我的推測是正確的嗎?
如果真是這樣,該如何調整輸入方式呢?
我的完整程式碼: gist(python) (內含三個不同版本,但核心算法是一致的)
測資裡面有空白行。
有了,總算能過這題了,謝謝你
我改成這樣讀資料,總算能 AC
while True: |
讀 num1 和 num2 的那兩行一定要包在 try 裡面,不能放外面,因為 EOF 有可能出現在這兩行(#1, #2, #3 都是這樣)