CodeSprout程式萌芽
← 返回題庫基礎語法 / 第 416 題操作教學 ↗
困難迴圈與狀態

416. 交替收支:回到曾見狀態

events 是依時間排序的整數事件。狀態從 0 開始,對第 1、3、5 等筆加上值,對第 2、4、6 等筆減去值,筆數從 1 起算。每處理一筆取得一個狀態值。若此值在更早的某筆處理後出現過,回傳 [目前筆索引, 上一次相同狀態的筆索引]。初始狀態不算一筆。

傳入的資料

events:依照題目敘述依序傳入的參數。數字為整數、字串為 ASCII;各參數的用途、範圍與排列規則見題目敘述。

回傳的答案

使用 return 回傳題目要求的結果,型別與結構請參照公開測資;不要使用 print 或 console.log 代替回傳。

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

事件 0~20 筆,每個值 -20~20,所有結果為整數;筆索引從 0 起算。本題只模擬數字規則,不涉及真實交易。

💡 給我一點提示

把規則拆成兩階段:先計算條件或中間結果,再建立指定的報表。可使用小型陣列與巢狀迴圈,不需要進階演算法。

小提醒

請在 solve 函式裡寫程式,用 return 回傳答案,不需要自己讀取輸入。

</>你的程式碼
草稿只存在這台裝置Tab 縮排・Esc 再 Tab 離開編輯器 ⌘ / Ctrl + Enter 測試

提交後,程式碼與想法會以你的帳號公開。

登入後提交

測試結果

7 組練習測資

準備好了嗎?按「測試程式」看看結果。

>_每一次嘗試,都是進步。結果會顯示在這裡。

測試在瀏覽器內執行,供練習參考;不代表正式評分。Python 首次載入需要網路。