Rencontre #34: Piles et Files

par Guillaume Tardif et Samuel Maltais

Lors de cette rencontre, nous poursuivrons notre exploration des piles (stacks), une structure de données essentielle pour de nombreux algorithmes. Ensuite, nous débuterons notre apprentissage des files (queues), qui suivent un principe d’organisation différent mais tout aussi fondamental. Préparez-vous à découvrir comment utiliser ces structures pour résoudre efficacement des problèmes en programmation compétitive !

Introduction aux Piles (Stacks)

Une pile (stack) est une structure de données qui suit le principe "Last In, First Out" (LIFO), c’est-à-dire que le dernier élément ajouté est le premier à être retiré. Imaginez une pile d’assiettes où vous ne pouvez retirer que celle du dessus.

Introduction aux Files (Queues)

Une file (queue) est une structure de données qui suit le principe du "First In, First Out" (FIFO), où le premier élément ajouté est le premier à être retiré, comme une file d’attente dans un magasin.

Problèmes

Le nombre à côté de chaque problème indique son niveau de difficulté selon Kattis.

  1. “Delimiter Soup” 1.9 — Validez une chaîne de caractères composée de parenthèses, crochets et accolades en détectant la première erreur de délimiteur ou en confirmant l’absence d’erreurs.

  2. “Game of Throwns” 2.6 — Déterminez quel enfant finit avec l’œuf après une serie de lancers et d’annulations, selon les instructions données par Daenerys.

  3. “Working at the Restaurant” 4.1 — Simulez le dépôt et la prise d’assiettes sur deux piles pour les passer au lave-vaisselle dans l’ordre correct, en respectant les commandes reçues et en optimisant les mouvements.

  4. “Join Strings” 5.5 — Concaténez des chaînes de caractères en suivant une série d’opérations, et affichez la chaîne finale qui reste après avoir exécuté toutes les opérations.