Menu
Coddy logo textTech

Als erledigt markieren

Teil des Abschnitts Logik & Kontrollfluss der Swift-Journey von Coddy — Lektion 34 von 56.

Die erste Funktion: Eine Liste von „Markiere diese Gewohnheit an diesem Tag als erledigt“-Aktionen verarbeiten und einen Endzustand erzeugen.

Jede Eingabezeile ist eine Operation im Format habit:day, wobei day zwischen 1 und 7 liegt. Falls die Gewohnheit noch nicht existiert, erstelle sie mit einem leeren Array und hänge dann den Tag an. Falls ein Tag bereits für diese Gewohnheit aufgezeichnet wurde, darf er nicht doppelt aufgezeichnet werden.

Sie werden auf das Default-Subscript-Muster aus dem Dictionary-Kapitel zurückgreifen: habits[name, default: []].append(day) funktioniert, egal ob der Schlüssel existiert oder nicht.

challenge icon

Aufgabe

Einfach

Lies eine einzelne Eingabezeile ein: eine kommagetrennte Liste von habit:day-Einträgen (z. B. read:1,read:3,workout:2). Gib nach der Anwendung jeder Operation die Gewohnheiten in alphabetischer Reihenfolge aus, eine pro Zeile, im Format:

<habit>: <days_sorted_ascending_joined_with_comma>

Überspringe doppelte habit:day-Paare.

Für die Eingabe read:1,read:3,workout:2,read:1,read:5,workout:4 ist die Ausgabe:

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

Spickzettel

Verwenden Sie das default-subscript-Muster, um an ein Dictionary von Arrays anzuhängen, wobei der Schlüssel erstellt wird, falls er noch nicht existiert:

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

Um Duplikate zu vermeiden, prüfen Sie dies vor dem Anhängen:

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

Probier es selbst

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

// TODO: Für jede Operation Name:Tag parsen, Tag hinzufügen, falls noch nicht vorhanden;
// dann Gewohnheiten in alphabetischer Reihenfolge mit sortierten Tagen ausgeben
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Logik & Kontrollfluss