官方解答 · 置頂Python
官方解答|樣本資料盒
官方解答
Python #439:樣本資料盒
解題規則
實驗工具以物件保存一份樣本副本,請提供指定的資料檢視。
NumberBox 在初始化時複製 values 清單到自己的 values 屬性。report 回傳第一項,空清單時回傳None。不修改輸入清單。
處理步驟
NumberBox 初始化時複製 values;report 依題目從該副本取值、切片或統計。第一項、最後項、最大最小值在空資料時按規定回傳 None。
為何正確
物件屬性保存當前狀態;負責更新的方法依當時屬性完成一次更新與必要的快照,讀值步驟只讀取目前屬性。初始化及逐次更新維持題目指定的狀態,因此最後回傳的資料符合指定摘要。
邊界與注意事項
本題輸入範圍:長度0~12,每個數為 -100~100。物件須自行複製輸入清單,不修改呼叫者的原始清單。 除題目指定的篩選或移除外,保留原資料的重複項與順序;使用切片或明確判斷安全處理允許的空資料。 需要清單快照時另外複製,兩個物件的清單與計數彼此獨立。
範例追蹤
依參數順序 values 傳入 [[3,-2,0,5,-2]]。關鍵中間資料為 box = {'values': [3, -2, 0, 5, -2]}。最後回傳 3。結果由 return 回傳,不使用 print。
複雜度
設輸入及必要輸出的總大小為 n;複製、轉換或掃描最壞時間 O(n),保存中間資料與回傳結果最壞需要 O(n) 空間。
CodeSprout 官方解答 · 題意分析、解題步驟與完整參考程式
class NumberBox:
def __init__(self, values):
self.values = list(values)
def report(self):
return self.values[0] if self.values else None
def solve(values):
box = NumberBox(values)
return box.report()
留言討論 0
登入 後就能留言,一起討論不同的寫法。