官方解答 · 置頂Python
官方解答|樣本編輯日誌
官方解答
Python #101:樣本編輯日誌
解題規則
樣本整理工具會連續執行兩次編輯,請保存每一步的結果供記錄員核對。
複製輸入清單後依序執行兩步。第一步:在末尾加上當時的格數;第二步:非空時移除第一格。第二步使用第一步處理完的清單。回傳 [第一步完成時的獨立快照, 第二步完成時的清單],之後的修改不能影響第一份快照。
處理步驟
複製輸入,依第一步規則建立 first,再以 first 計算 second;回傳兩份獨立清單快照。
為何正確
程式只讀取原輸入,不做原地修改。切片、串接或排序依指定規則產生結果;多步驟的第二步使用第一步結果,而摘要讀取題目指定的清單,因此順序、快照與統計來源一致。
邊界與注意事項
本題輸入範圍:清單長度 0~12;每個值為 -100~100 的整數。 除題目指定的篩選或移除外,保留原資料的重複項與順序;使用切片或明確判斷安全處理允許的空資料。
範例追蹤
依參數順序 values 傳入 [[3,-2,0,5,-2]]。關鍵中間資料為 current = [3, -2, 0, 5, -2];first = [3, -2, 0, 5, -2, 5];second = [-2, 0, 5, -2, 5]。最後回傳 [[3, -2, 0, 5, -2, 5], [-2, 0, 5, -2, 5]]。結果由 return 回傳,不使用 print。
複雜度
設輸入及必要輸出的總大小為 n;複製、轉換或掃描最壞時間 O(n),保存中間資料與回傳結果最壞需要 O(n) 空間。
CodeSprout 官方解答 · 題意分析、解題步驟與完整參考程式
def solve(values):
current = list(values)
first = current + [len(current)]
second = first[1:]
return [list(first), list(second)]
留言討論 0
登入 後就能留言,一起討論不同的寫法。