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

تجميع القيم

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

نمط الفهرس الفرعي الافتراضي هو الأساس لشكلين شائعين في الحياة اليومية.

عداد التكرار: احسب عدد مرات ظهور كل مفتاح.

let letters = ["a", "b", "a", "c", "a"]
var counts: [String: Int] = [:]
for letter in letters {
    counts[letter, default: 0] += 1
}
// counts == ["a": 3, "b": 1, "c": 1]

التجميع في مجموعات: اجمع القيم ضمن مفتاح مُشتق:

let words = ["hi", "hello", "yo", "hey"]
var byLength: [Int: [String]] = [:]
for w in words {
    byLength[w.count, default: []].append(w)
}
// [2: ["hi", "yo"], 5: ["hello"], 3: ["hey"]]

القيمة الافتراضية لحالة التجميع هي مصفوفة فارغة. تُستخدم قيمة default: فقط عندما يكون المفتاح مفقودًا، ثم يغيّر الجانب الأيمن الإدخال في مكانه.

challenge icon

التحدي

متوسط

اقرأ سطرًا واحدًا من الإدخال: قائمة كلمات مفصولة بفواصل.

اطبع، بهذا الترتيب:

  1. سطرًا واحدًا لكل طول كلمة يظهر في الإدخال، مرتبًا من الأقصر إلى الأطول، بالتنسيق <length>: <count> حيث تكون count هي عدد الكلمات التي ظهرت بهذا الطول
  2. Most common length: <n> حيث تكون n هي القيمة التي لها أعلى count. عند التعادل، اختر الطول shorter.

بالنسبة للإدخال hi,hello,yo,hey,bonjour,bye، يكون الناتج:

2: 2
3: 2
5: 1
7: 1
Most common length: 2

يظهر الطولان 2 و3 مرتين لكل منهما. تم كسر التعادل باختيار shorter، لذلك يفوز 2.

جرّب بنفسك

let words = readLine()!.components(separatedBy: ",")

// TODO: عدّ الكلمات حسب الطول؛ اطبع مرتّبة؛ اطبع الأكثر شيوعاً (عند التعادل: الأقصر)
quiz iconاختبر نفسك

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

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

تدرّب بنفسك: Playground لـ Swift