官方解答 · 置頂Python
官方解答|日程批次整理
官方解答
Python #427:日程批次整理
解題規則
活動記錄員要挑選一批日期並調整日程,請保留指定的日期資訊。
用 datetime.date.fromisoformat 解析各日期,依「原日期」保留全部日期。將保留的日期往後移動 offset 天,負數表示往前;每項輸出[原星期編號,位移後星期編號],週一0到週日6。保留原清單順序。不去除重複日期。
處理步驟
先用原日期判斷條件,再加 offset 天;日期模組自動處理跨月、跨年及閏日,最後依指定順序輸出。
為何正確
標準模組函式各自實作所指定的日期、文字或統計運算。篩選依原值、轉換依保留項目、摘要依規定集合進行,因此輸出的資料來源與型態一致。
邊界與注意事項
本題輸入範圍:每項格式 YYYY-MM-DD,年份2020~2030;清單0~12項;offset 為 -30~30。忽略時區,可使用 date.fromisoformat。
範例追蹤
依參數順序 dates, offset 傳入 [[],2]。關鍵中間資料為 result = []。最後回傳 []。結果由 return 回傳,不使用 print。
複雜度
設輸入及必要輸出的總大小為 n;複製、轉換或掃描最壞時間 O(n),保存中間資料與回傳結果最壞需要 O(n) 空間。
CodeSprout 官方解答 · 題意分析、解題步驟與完整參考程式
import datetime
def solve(dates, offset):
result = []
for text in dates:
original = datetime.date.fromisoformat(text)
if True:
shifted = original + datetime.timedelta(days=offset)
result.append([original.weekday(), shifted.weekday()])
return result
留言討論 0
登入 後就能留言,一起討論不同的寫法。