Récapitulatif - Inventaire
Fait partie de la section Logique et Flux du Journey Swift de Coddy — leçon 17 sur 56.
Défi
MoyenVous suivez l'inventaire d'un magasin. Lisez une seule ligne d'entrée : une liste d'opérations séparées par des virgules s'appliquant à un [String: Int] initialement vide nommé stock. Chaque opération est l'une des suivantes :
in:<item>:<qty>ajoute la quantité à l'article (utilisez le modèle d'indice par défaut)out:<item>:<qty>soustrait la quantité. Si la quantité résultante est0ou négative, supprimez entièrement la clé.
Après avoir appliqué chaque opération, affichez :
- Une ligne par article restant, triée par ordre alphabétique, au format
<item>: <qty> Total units: <n>pour l'ensemble des valeurs restantes
Pour l'entrée in:apple:5,in:bread:2,out:apple:3,in:apple:4,out:bread:5, la sortie est :
apple: 6
Total units: 6Essayez vous-même
let ops = readLine()!.components(separatedBy: ",")
var stock: [String: Int] = [:]
// TODO: analyser chaque op sous la forme type:article:quantité ; in ajoute, out soustrait ;
// supprimer les clés dont la quantité tombe à <= 0 ; afficher les lignes triées + le total
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