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, günlük hayatta kullanılan iki şeklin temelidir.

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

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]

Gruplama: 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 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 girdiyi yerinde değiştirir.

challenge icon

Görev

Orta

Girdinin tek bir satırını okuyun: virgülle ayrılmış bir kelime listesi.

Şu çıktıları bu sırayla yazdırın:

  1. Girdide bulunan her kelime uzunluğu için, en kısadan en uzuna sıralanmış bir satır; biçim <length>: <count> olmalıdır; burada count, o uzunluktaki kelimelerin kaç kez bulunduğunu belirtir
  2. Most common length: <n>; burada n, en yüksek sayıya sahip uzunluktur. Eşitlikleri, daha kısa uzunluğu seçerek çözün.

hi,hello,yo,hey,bonjour,bye girdisi 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 bulunur. Eşitlik daha kısa olan seçilerek çözülür, bu nedenle 2 kazanır.)

Kendin dene

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

// TODO: kelimeleri uzunluğa göre say; sıralı yazdır; en yaygın olanı yazdır (beraberlikte: daha kısa)
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