Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

تحديد كمكتمل

جزء من قسم المنطق والتدفق في رحلة Swift على Coddy — الدرس 34 من 56.

الميزة الأولى: معالجة قائمة من إجراءات "تحديد هذه العادة كمنجزة في هذا اليوم" وإنتاج حالة نهائية.

كل سطر إدخال هو عملية واحدة بالتنسيق habit:day حيث day بين 1 و 7. إذا لم تكن العادة موجودة بعد، فقم بإنشائها بمصفوفة فارغة، ثم أضف اليوم. إذا كان اليوم مسجلاً بالفعل لتلك العادة، لا تقم بتسجيله مرتين.

ستعتمد على نمط الفهرس الافتراضي (default-subscript pattern) من فصل القواميس: habits[name, default: []].append(day) يعمل سواء كان المفتاح موجودًا أم لا.

challenge icon

التحدي

سهل

اقرأ سطراً واحداً من المدخلات: قائمة مفصولة بفاصلة من مدخلات 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: ",")

// مهام: لكل عملية، قم بتحليل الاسم:اليوم، وأضف اليوم إذا لم يكن موجوداً بالفعل؛
// ثم اطبع العادات بترتيب أبجدي مع أيام مرتبة
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس المنطق والتدفق