Zusammenfassung – Bestenliste
Teil des Abschnitts Logik & Kontrollfluss der Swift-Journey von Coddy — Lektion 32 von 56.
Aufgabe
MittelSie erstellen eine Bestenliste. Lesen Sie eine einzelne Eingabezeile ein: eine durch Kommas getrennte Liste von name:score Einträgen. Einige Einträge haben eine nicht-ganzzahlige Punktzahl und sollten übersprungen werden (verwenden Sie compactMap).
Geben Sie die drei besten Spieler nach absteigender Punktzahl aus, einen pro Zeile, im Format:
<rank>. <name> - <score>Die Ränge beginnen bei 1. Lösen Sie Gleichstände alphabetisch nach dem Namen auf. Wenn weniger als drei gültige Einträge vorhanden sind, geben Sie alle aus.
Geben Sie nach der Bestenliste Avg: <n> mit dem ganzzahligen Durchschnitt jeder gültigen Punktzahl aus (Richtung Null abgerundet, keine Dezimalstellen). Wenn keine gültigen Einträge vorhanden sind, geben Sie Avg: 0 aus.
Für die Eingabe alice:90,bob:bad,cara:85,dan:90,eve:70,fin:99 lautet die Ausgabe:
1. fin - 99
2. alice - 90
3. dan - 90
Avg: 86Probier es selbst
let entries = readLine()!.components(separatedBy: ",")
// TODO: compactMap zu (Name, Punktzahl); sortieren nach Punktzahl absteigend, Gleichstand nach Name;
// die Top 3 ausgeben; dann den Durchschnitt aller gültigen Punktzahlen
Alle Lektionen in Logik & Kontrollfluss
1Strings im Detail
Zählen und IndizesGroß-/Kleinschreibung und TrimmenSuchen in StringsTeilen und ZusammenfügenTeilstrings ersetzenWiederholung – Benutzernamen-Check4Mengen
Mengen erstellenVereinigung und SchnittmengeDifferenz und symmetrische DifferenzTeilmenge und ObermengeRückblick – Tag-Filter7Projekt - Habit Tracker
ProjektübersichtAls erledigt markieren2Bereiche & Schrittweiten
Geschlossen vs. halboffenSchrittweiteRange-MethodenRanges in SwitchRückblick – Kalender-Grid5Funktionen höherer Ordnung Teil 1
MapFilterReduceVerkettung von map, filter, reduceRückblick – Wortstatistiken3Dictionaries
Dictionaries deklarierenOptionaler LookupDictionaries aktualisierenÜber Dictionaries iterierenWerte gruppierenZusammenfassung – Inventar6Funktionen höherer Ordnung Teil 2
compactMapflatMapsorted(by:)Pipelines erstellenZusammenfassung – Bestenliste