Description du problème

Le 8 mars c’est la journée mondiale des femmes.

Chaque année Fatiha organise une soirée le 8 mars au bénéfice des femmes qui sont actives sur les réseaux sociaux.

Cette année son site internet a pris beaucoup de temps pour réparation, pour ne pas perdre le temps, elle posté une annonce à LinkedIn, et demandé aux intéressées de laisser leurs email dans un commentaire (comme faisait d’autres pour collecter les adresses email sous prétexte de partager un livre important ou une liste des contacts des responsables RH).

Malheureusement Fatiha n’a pas le temps pour faire copier/coller commentaire par commentaire, donc elle a tout sélectionné et coller sur un fichier texte, alors là elle a eu une mauvaise surprise, car en plus du contenu des commentaires, elle a trouvé d’autres mots venants du code HTML.

Votre mission alors d’extraire la liste des emails parmi ce texte.

Spécifications de l’entrée:

L’entrée contient un seul cas de test.

La première ligne contient un entierN le nombre des lignes à traiter,1≤N≤500.

Suivit de N lignes.

Chaque ligne est sous forme de plusieurs mot dont un seul au plus est une adresse email (pour simplifier contient le caractère spéciale ‘@’) la longueur maximal de chaque ligne ne dépasse pas 80.

Spécifications de la sortie:

Afficher selon l’ordre d’apparition la liste des emails, chaque ligne contient une seule adresse.

Temps maximum autorisé d’exécution: 5s

Exemple de l’entrée:

ABCD EFG abcd.efg@gmail.com merciSignaler ce commentaire
A1B2C3 A1B2C3 MerciiSignaler ce commentaire
aaaa bbbbbb aaaaa@gmail.com merciSignaler ce commentaire

Sample Output:

abcd.efg@gmail.com
aaaaa@gmail.com

Analyse

C’était l’un des problèmes très faciles du challenge qui ne demande aucune optimisation ou algorithme avancée.

Pour commencer la résolution il suffit de stocker la valeur de la taille du problème T, puis faire une boucle for pour lire le contenu de l’entrée ligne par ligne.

Puisqu’on vous garantit que la ligne contiendra au maximum une adresse mail (ou plus simplement selon la description un mot qui a le caractère ‘@‘ , il est possible d’arrêter la vérification une fois qu’on trouve ce mot.

NB : pour des langages de programmation, le programme crache une fois qu’i rencontre un caractère non ASCII, pour éviter ce cas il suffit de lire les chaines de caractères en utilisant les bonnes méthodes/fonction.
Complexité du problème: O(T).

Time Line

Un trafic important pour une challenge de 3 heures :

Submits status

une dominance du statut ACCEPTED puisque c’est un problème facile :

Programming languages

JAVA a gagné la bataille ce mois pour presque tous les problèmes :

Les seul astuce pour l’entrée secrète c’est la prise en considération des mots avec des caractères non ASCII (comme ï )