تحديد كمكتمل
جزء من قسم المنطق والتدفق في رحلة Swift على Coddy — الدرس 34 من 56.
الميزة الأولى: معالجة قائمة من إجراءات "تحديد هذه العادة كمنجزة في هذا اليوم" وإنتاج حالة نهائية.
كل سطر إدخال هو عملية واحدة بالتنسيق habit:day حيث day بين 1 و 7. إذا لم تكن العادة موجودة بعد، فقم بإنشائها بمصفوفة فارغة، ثم أضف اليوم. إذا كان اليوم مسجلاً بالفعل لتلك العادة، لا تقم بتسجيله مرتين.
ستعتمد على نمط الفهرس الافتراضي (default-subscript pattern) من فصل القواميس: habits[name, default: []].append(day) يعمل سواء كان المفتاح موجودًا أم لا.
التحدي
سهلاقرأ سطراً واحداً من المدخلات: قائمة مفصولة بفاصلة من مدخلات habit:day (على سبيل المثال read:1,read:3,workout:2). بعد تطبيق كل عملية، اطبع العادات بترتيب أبجدي، واحدة في كل سطر، بالتنسيق التالي:
<habit>: <days_sorted_ascending_joined_with_comma>تخطى أزواج habit:day المكررة.
للمدخلات read:1,read:3,workout:2,read:1,read:5,workout:4، المخرجات هي:
read: 1,3,5
workout: 2,4ورقة مرجعية
استخدم نمط default-subscript للإضافة إلى قاموس من المصفوفات، مع إنشاء المفتاح إذا لم يكن موجوداً:
var habits: [String: [Int]] = [:]
habits[name, default: []].append(day)
لتجنب التكرار، تحقق قبل الإضافة:
if !habits[name, default: []].contains(day) {
habits[name, default: []].append(day)
}
جرّب بنفسك
var habits: [String: [Int]] = [:]
let ops = readLine()!.components(separatedBy: ",")
// مهام: لكل عملية، قم بتحليل الاسم:اليوم، وأضف اليوم إذا لم يكن موجوداً بالفعل؛
// ثم اطبع العادات بترتيب أبجدي مع أيام مرتبة
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس المنطق والتدفق
1النصوص بعمق
العد والفهارسحالة الأحرف وإزالة الفراغاتالبحث في النصوصتقسيم ودمج النصوصاستبدال النصوص الفرعيةمراجعة - التحقق من اسم المستخدم4المجموعات
إنشاء المجموعاتالاتحاد والتقاطعالطرح والفرق المتماثلالمجموعات الجزئية والشاملةمراجعة - تصفية الـ Tag7مشروع - متتبع العادات
نظرة عامة على المشروعتحديد كمكتمل2النطاقات والخطوات
المغلقة مقابل نصف المفتوحةالخطوة (Stride)دوال النطاقاتالنطاقات في Switchملخص - شبكة التقويم5الدوال من الرتبة العليا - الجزء الأول
MapFilterReduceربط Map و Filter و Reduceمراجعة - إحصائيات الكلمات