演算法中階・區間、堆疊與網格
這一頁是題幹試閱;登入/註冊後每題可以在瀏覽器裡執行、對答案,第一次交對 +10 XP。
- 01
合併維護時段
中等區間合併多個團隊各自登記了資料庫維護時段(分鐘,閉區間 [start, end])。只要兩個時段重疊或首尾相接(例如 [1,3] 和 [3,5]),就視為同一段。請合併所有時段。
輸入:
第 1 行:n
接下來 n 行:start end
輸出:合併後每段一行「start end」,依 start 由小到大。最後一行印「total 總分鐘數」,總分鐘數=各段 (end - start) 的和。
範例輸入:
3
1 3
2 6
8 10
範例輸出:
1 6
8 10
total 7
類型對應:LeetCode「Merge Intervals」類(情境與敘述為本平台改寫)。
輸入請用 input() 逐行讀取(平台不支援 sys.stdin)。執行時平台會把每一行測資回顯在輸出最前面,這是正常的,不用自己印。本題在瀏覽器內以 Pyodide 執行,只用標準函式庫。先把全部輸入讀完再輸出,不要在迴圈裡邊讀邊印(回顯行會插進輸出中間,就對不上答案)。
作答登入後可作答 - 02
設定檔括號檢查
中等堆疊部署前要檢查設定檔的括號是否成對。每行是一段設定字串,裡面除了括號 ()、[]、{} 之外還有其他字元(其他字元忽略)。
輸入:
第 1 行:n
接下來 n 行:設定字串
輸出:每行一個結果。括號全部正確成對印 OK;否則印「ERR 位置」,位置是第一個出錯的字元索引(從 0 起算):
- 遇到右括號但對不上,就是該右括號的位置;
- 字串結束還有沒關的左括號,位置是「最早那個沒關的左括號」。
範例輸入:
2
a(b[c])
x{y)
範例輸出:
OK
ERR 3
類型對應:LeetCode「Valid Parentheses」類(情境與敘述為本平台改寫)。
輸入請用 input() 逐行讀取(平台不支援 sys.stdin)。執行時平台會把每一行測資回顯在輸出最前面,這是正常的,不用自己印。本題在瀏覽器內以 Pyodide 執行,只用標準函式庫。先把全部輸入讀完再輸出,不要在迴圈裡邊讀邊印(回顯行會插進輸出中間,就對不上答案)。
作答登入後可作答 - 03
套件版本比較
中等字串解析升級套件前要比較版本號。版本號由點分隔的數字組成,各段依序比較數值大小(不是字串大小),前導零忽略("1.02" 等於 "1.2"),段數不足的視為 0("1.2" 等於 "1.2.0")。
輸入:
第 1 行:n
接下來 n 行:兩個版本號,以空白分隔
輸出:每行一個符號:前者較新印 >,較舊印 <,相同印 =。
範例輸入:
2
1.0 1
1.2 1.10
範例輸出:
=
<
類型對應:LeetCode「Compare Version Numbers」類(情境與敘述為本平台改寫)。
輸入請用 input() 逐行讀取(平台不支援 sys.stdin)。執行時平台會把每一行測資回顯在輸出最前面,這是正常的,不用自己印。本題在瀏覽器內以 Pyodide 執行,只用標準函式庫。先把全部輸入讀完再輸出,不要在迴圈裡邊讀邊印(回顯行會插進輸出中間,就對不上答案)。
作答登入後可作答 - 04
機房故障區塊
中等圖 BFS機房的機櫃排成 R × C 的網格,# 表示故障、. 表示正常。上下左右相鄰的故障機櫃算同一個故障區塊(斜對角不算)。
輸入:
第 1 行:R C
接下來 R 行:每行 C 個字元
輸出:兩行
第 1 行:故障區塊數
第 2 行:各區塊大小,由大到小以空白分隔(沒有故障則印空行)
範例輸入:
3 4
#..#
#...
..##
範例輸出:
3
2 2 1
類型對應:LeetCode「Number of Islands」類(情境與敘述為本平台改寫)。
輸入請用 input() 逐行讀取(平台不支援 sys.stdin)。執行時平台會把每一行測資回顯在輸出最前面,這是正常的,不用自己印。本題在瀏覽器內以 Pyodide 執行,只用標準函式庫。先把全部輸入讀完再輸出,不要在迴圈裡邊讀邊印(回顯行會插進輸出中間,就對不上答案)。
作答登入後可作答

送件鴿飛出去了