Récapitulatif - Tableau de classement
Fait partie de la section Logique et Flux du Journey Swift de Coddy — leçon 32 sur 56.
Défi
MoyenVous produisez un classement. Lisez une seule ligne d'entrée : une liste d'entrées name:score séparées par des virgules. Certaines entrées ont un score qui n'est pas un entier et doivent être ignorées (utilisez compactMap).
Affichez les trois meilleurs joueurs par score décroissant, un par ligne, au format :
<rank>. <name> - <score>Les rangs commencent à 1. En cas d'égalité, tranchez par nom alphabétiquement. S'il y a moins de trois entrées valides, affichez-les toutes.
Après le classement, affichez Avg: <n> avec la moyenne entière de chaque score valide (tronquée vers zéro, sans décimales). Lorsqu'aucune entrée valide n'existe, affichez Avg: 0.
Pour l'entrée alice:90,bob:bad,cara:85,dan:90,eve:70,fin:99, la sortie est :
1. fin - 99
2. alice - 90
3. dan - 90
Avg: 86Essayez vous-même
let entries = readLine()!.components(separatedBy: ",")
// TODO: compactMap vers (nom, score) ; trier par score décroissant avec le nom comme critère de départage ;
// afficher les 3 premiers ; puis la moyenne de tous les scores valides
Toutes les leçons de Logique et Flux
1Les chaînes de caractères en profondeur
Comptage et indicesCasse et nettoyageRecherche dans les chaînesDécoupage et jointureRemplacement de sous-chaînesRécapitulatif - Vérification du nom d'utilisateur4Ensembles
Création d'ensemblesUnion et intersectionSoustraction et différence symétriqueSous-ensemble et sur-ensembleRécapitulatif - Filtre de tags7Projet - Suivi d'habitudes
Aperçu du projetMarquer comme terminé10Projet - Moteur de quiz
Présentation du projetPoser des questions2Intervalles et Pas
Fermé vs Semi-ouvertLe PasMéthodes d'intervalleIntervalles dans un SwitchRécapitulatif - Grille de calendrier5Fonctions d'ordre supérieur, Partie 1
MapFilterReduceChaînage de map, filter, reduceRécapitulatif - Statistiques de mots3Dictionnaires
Déclarer des dictionnairesRecherche optionnelleMettre à jour des dictionnairesParcourir des dictionnairesGrouper des valeursRécapitulatif - Inventaire6Fonctions d'ordre supérieur, partie 2
compactMapflatMapsorted(by:)Construction de pipelinesRécapitulatif - Tableau de classement