官方解答 · 置頂Python
官方解答|日程雙欄卡
官方解答
Python #394:日程雙欄卡
解題規則
活動記錄員需要從同一天取得兩項日程資訊。
匯入 datetime。兩項都使用原始輸入分別計算,不讓前一項改變後一項資料。第一項是YYYY-MM-DD 日期文字;第二項是當年度第幾天,1月1日為1。回傳 [第一項,第二項]。
處理步驟
匯入 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', 365]。結果由 return 回傳,不使用 print。
複雜度
依本題有界的數字、日期範圍,執行固定次數運算,時間與額外空間為 O(1)。
CodeSprout 官方解答 · 題意分析、解題步驟與完整參考程式
import datetime
def solve(year, month, day, offset):
date = datetime.date(year, month, day)
return [date.isoformat(), (date - datetime.date(year, 1, 1)).days + 1]
留言討論 0
登入 後就能留言,一起討論不同的寫法。