b367: 翻轉世界
內容
有位勇士排除萬難後,來到了最後一關—–[翻轉世界]
他發現所有物品都翻轉了 180 度
如果要繼續前進必須做出一項選擇,也就是找到翻轉後不會改變的東西!
例如:
110
000
011
若翻轉 180 度:
110
000
011
現在給你一張圖
請你幫忙這位勇士吧,因為除了必須判斷這個問題以外,還必須打倒翻轉世界的怪物才行
所以請你寫一個程式幫他
輸入
每行有一正整數 T(T<11),代表有幾組測試資料
接下來有 T 行, 每行有 N、M 兩正整數
N 代表長,M 代表寬 (0<N,M<11)
而接下會有 N 行,每一行會有 M 個數字 r (0<=r<231-1)
2
3 3
1 1 0
0 1 0
0 1 1
1 5
0 0 1 0 1
輸出
對於每個測資,判斷是否可以符合翻轉 180 度不會改變的圖形
是的話請輸出 go forward
否的話請輸出 keep defending
go forward
keep defending
解題思路
讀入陣列,之後分別從頭開始往後和從尾開始往前判斷是否相等,如果某次匹配不相等或是頭 ≥ 尾時斷開,之後輸出答案即可。
Ex: [0 : 20] , [1 : 19] , [2 : 18] … [9 : 11] , [10 : 10]
雖然輸入有二維陣列,但判斷邏輯和上面處理一維陣列的方式是一樣的,所以在輸入時把二微陣列壓縮成一維,方便之後判斷。
完整程式碼
AC (2ms, 104KB)
|