官方解答 · 置頂Python
官方解答|日程雙欄卡
官方解答
Python #400:日程雙欄卡
解題規則
活動記錄員需要從同一天取得兩項日程資訊。
匯入 datetime。兩項都使用原始輸入分別計算,不讓前一項改變後一項資料。第一項是YYYY-MM-DD 日期文字;第二項是明天的 YYYY-MM-DD 文字。回傳 [第一項,第二項]。 「明天」「昨天」及「所在週」一律以 year、month、day 代表的輸入日期為基準,不使用系統今天;一週定義為週一至週日。
處理步驟
匯入 datetime;兩項皆用原始參數獨立計算,再依題目順序回傳兩格清單。 先由 year、month、day 建立 date;天數位移使用 timedelta,星期、月初和年度天次依題目指定原日期計算。
為何正確
標準模組函式各自實作所指定的日期、文字或統計運算。篩選依原值、轉換依保留項目、摘要依規定集合進行,因此輸出的資料來源與型態一致。
邊界與注意事項
本題輸入範圍:日期介於2020~2030年且合法;offset 為 -30~30。使用 datetime.date,忽略時區及時分秒。
範例追蹤
依參數順序 year, month, day, offset 傳入 [2023,12,31,1]。直接將參數代入「ISO日期/明天日期」指定運算。最後回傳 ['2023-12-31', '2024-01-01']。結果由 return 回傳,不使用 print。
複雜度
依本題有界的數字、日期範圍,執行固定次數運算,時間與額外空間為 O(1)。
CodeSprout 官方解答 · 題意分析、解題步驟與完整參考程式
import datetime
def solve(year, month, day, offset):
date = datetime.date(year, month, day)
return [date.isoformat(), (date + datetime.timedelta(days=1)).isoformat()]
留言討論 0
登入 後就能留言,一起討論不同的寫法。