Quel colis pour quelle destination ?

Cette semaine, c'est Maxime qui vous propose un #KataOfTheWeek : Séparateur de colis

Briefing du Kata : L'idée ici est d'aider au dispatch des colis qui arrivent sur un tapis roulant afin de les séparer en plusieurs piles. On symbolisera le tapis roulant par un tableau de chaîne de caractère contenant les numéros de suivi des colis scannés par le système. Attention, il peut arriver que le système ne puisse pas lire le numéro de suivi, il renverra alors la chaîne "ERREUR".

On aura donc un tableau d'entrée sous le forme
["FR123456789A", "GB987654321X", "ERREUR", "FR112233445F", "DE7788995U"]

On suppose pour simplifier que si le système ne renvoie pas "ERREUR" lors de la lecture, le numéro de suivi renvoyé est au bon format, à savoir 2 lettres, 9 chiffres, 1 lettre.

A partir de cette entrée le système doit dispatcher les colis en plusieurs tas en fonction du pays de destination que l'on peut déterminer à partir des deux premières lettres du numéro de suivi. Les colis en erreur seront ajoutés à un tas "ERR" qui demandera une vérification manuelle. On symbolisera cela par un regroupement de couple clé-valeurs où la clé sera le code pays et la valeur un tableau de chaîne de caractères regroupant les colis par destination. Pour la ligne ERR, on incrémentera juste un entier.

Par exemple, avec l'entrée précédente, la sortie sera :

{
    "FR": ["FR123456789A", "FR112233445F"],
    "GB": ["GB987654321X"],
    "DE": ["DE7788995U"],
    "ERR": 1
}

Saurez-vous résoudre le problème ?

Bon courage ! Retrouvez la solution dans cet article 😉

TakiVeille

TakiVeille