Menu
Coddy logo textTech

Tamamlandı Olarak İşaretle

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

İlk özellik: "bu alışkanlığı bu gün yapıldı olarak işaretle" eylemlerinden oluşan bir listeyi işlemek ve nihai bir durum üretmektir.

Her giriş satırı habit:day biçiminde bir işlemdir; burada day, 1 ile 7 arasındadır. Eğer alışkanlık henüz mevcut değilse, boş bir dizi ile oluşturun ve ardından günü ekleyin. Eğer o alışkanlık için bir gün zaten kaydedilmişse, onu iki kez kaydetmeyin.

Sözlük bölümündeki varsayılan alt simge (default-subscript) deseninden yararlanacaksınız: habits[name, default: []].append(day) anahtarın var olup olmamasından bağımsız olarak çalışır.

challenge icon

Görev

Kolay

Tek bir satır girdi okuyun: virgülle ayrılmış habit:day girişlerinden oluşan bir liste (örneğin read:1,read:3,workout:2). Her işlemi uyguladıktan sonra, alışkanlıkları alfabetik sırayla, her satıra bir tane gelecek şekilde şu formatta yazdırın:

<habit>: <days_sorted_ascending_joined_with_comma>

Yinelenen habit:day çiftlerini atlayın.

read:1,read:3,workout:2,read:1,read:5,workout:4 girdisi için çıktı şöyledir:

read: 1,3,5
workout: 2,4

Kopya kağıdı

Bir dizi sözlüğüne (dictionary of arrays) ekleme yapmak ve anahtar mevcut değilse oluşturmak için varsayılan alt simge (default-subscript) desenini kullanın:

var habits: [String: [Int]] = [:]
habits[name, default: []].append(day)

Yinelenenleri önlemek için eklemeden önce kontrol edin:

if !habits[name, default: []].contains(day) {
    habits[name, default: []].append(day)
}

Kendin dene

var habits: [String: [Int]] = [:]
let ops = readLine()!.components(separatedBy: ",")

// TODO: her bir işlem için, ad:gün şeklinde ayrıştırın, eğer zaten yoksa günü ekleyin;
// ardından alışkanlıkları alfabetik sırayla ve sıralanmış günlerle yazdırın
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