Menu
Coddy logo textTech

Değerleri Gruplandırma

Coddy'nin Swift Journey'sinin Mantık ve Akış bölümünün bir parçası. Ders 16 / 56.

Varsayılan alt simge deseni, iki günlük şeklin temelini oluşturur.

Frekans sayacı: her bir anahtarın kaç kez göründüğünü sayın.

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]

Bucketing: değerleri türetilmiş bir anahtar altında toplayın:

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"]]

Gruplama (bucketing) durumu için varsayılan değer boş bir dizidir. default: değeri yalnızca anahtar eksik olduğunda kullanılır, ardından sağ taraf girişi yerinde değiştirir.

challenge icon

Görev

Orta

Tek bir giriş satırı okuyun: virgülle ayrılmış bir kelime listesi.

Şu sırayla yazdırın:

  1. Girişte görünen her kelime uzunluğu için, en kısadan en uzuna doğru sıralanmış, <length>: <count> biçiminde bir satır; burada count bu uzunluktaki kaç kelimenin göründüğüdür
  2. Most common length: <n>; burada n en yüksek sayıya sahip uzunluktur. Eşitlik durumunda daha kısa olan uzunluğu seçin.

hi,hello,yo,hey,bonjour,bye girişi için çıktı şöyledir:

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

(2 ve 3 uzunluklarının her ikisi de iki kez görünür. Eşitlik daha kısa olanla bozulur, bu nedenle 2 kazanır.)

Kendin dene

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

// TODO: kelimeleri uzunluklarına göre say; sıralı yazdır; en yaygın olanı yazdır (eşitlikte: daha kısa olanı)
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Mantık ve Akış bölümündeki tüm dersler

Kendi başına pratik yap: Swift playground