CodeSprout程式萌芽
← 返回題庫 Python 基礎語法 / 第 479 題 操作教學 ↗
困難Class (類別)

479. 雙路收件清單

Class (類別)物件實例狀態分流for方法

模擬器把每筆訊號送往兩個獨立狀態盒之一,請保存分流與狀態紀錄。

用同一個Bucket類別建立兩個獨立物件:左value初始為initial,右value初始為0;各自count為0、received為空清單。依原順序處理changes,每筆只送一邊。分流規則:「amount大於或等於0時送左,否則送右」。所有判斷使用該筆處理前的狀態。接收物件將value改成「目前value加amount」,再將count加1、把原amount加入received;另一邊完全不變。每一步都保存 [左value,右value] 快照,最後回傳[左收到的amount清單,右收到的amount清單,左value,右value]。

傳入的資料

initial:初始整數;changes:依序到達的整數清單。

回傳的答案

以題目指定的清單、字典、文字、數字或布林值回傳;不回傳物件實例。

範例 1
傳入[0, []]
回傳[[], [], 0, 0]
範例 2
傳入[-3, [2, -1, 4]]
回傳[[2, 4], [-1], 3, -1]

initial 為 -10~10;changes 長度0~8,每個數為 -6~6。索引從0開始,每一步必須使用當時狀態。

💡 給我一點提示+

先確認 __init__ 要保存哪些屬性,再逐步完成方法;由 solve 建立物件並回傳一般資料。

小提醒

以 solve(...) 作為測試入口,用 return 回傳答案。需要時可在上方加入 import、自訂函式與類別;不需要自己讀取輸入。

雲端草稿 PRO
跨裝置接續尚未提交的程式
</>你的程式碼
Python
本機草稿自動保存Tab 縮排・Esc 再 Tab 離開編輯器 ⌘ / Ctrl + Enter 測試

測試會執行 3 組公開案例與你新增的自訂案例。 登入後可提交程式,通過全部公開與隱藏測資後標記完成。

登入後提交

公開案例固定為 3 組。自訂案例只用於測試,不納入提交評分。0 / 17 組自訂案例

測試在瀏覽器內執行,不會標記完成或增加 XP。Python 首次載入需要網路。