برمج: توحيد صيغ التواريخ

جمع خالد مواعيد من عدة ملفات؛ التاريخ نفسه يظهر مرةً 2026-4-3 ومرةً 03/04/2026. نريد قائمة تواريخ بصيغة واحدة.

النتيجة

اكتب الدالة normalize_dates(dates) لتعيد قائمة جديدة بصيغة التاريخ القياسية YYYY-MM-DD: سنة من أربعة أرقام، ثم شهر ويوم من رقمين، وبين الأجزاء شرطة.

  • كل تاريخ مُدخل صحيح في التقويم الميلادي، وسنته بين 0001 و9999.
  • السنة دائمًا أربعة أرقام، أما الشهر واليوم فمن رقم أو رقمين.
  • الفاصل إما / أو -، ويُستخدم الفاصل نفسه بين أجزاء التاريخ الواحد. قد توجد مسافات حول النص.
  • إذا جاءت السنة أولًا، فالترتيب سنة ثم شهر ثم يوم. وإذا جاءت أخيرًا، فالترتيب يوم ثم شهر ثم سنة؛ لذلك 03/04/2026 يعني 3 أبريل.
  • احتفظ بترتيب التواريخ وتكرارها، ولا تغيّر القائمة الأصلية. القائمة الفارغة تعطي قائمة فارغة.

مثال

المدخل الناتج
"2026-4-3" "2026-04-03"
"03/04/2026" "2026-04-03"
"2026/04/03" "2026-04-03"
" 9-1-2025 " "2025-01-09"

شرح الحل