Une fois toutes les affectations soumises, un dictionnaire est créé qui associe le numéro d'élève au hachage de leur fichier.
Ce dictionnaire, ou hashmap, ou mappage (quel que soit votre langage) se présentera comme suit:
{100: "aabb", 104: "43a", 52: "00ab", 430: "aabb", 332: "43a"}
La clé est le numéro d'étudiant et la valeur est le hachage.
Notre tâche est de choisir les tricheurs! Les tricheurs sont ceux qui ont des hachages identiques.
Compte tenu de l'entrée {100: "aabb", 104: "43a", 52: "00ab", 430: "aabb", 332: "43a"}
, la fonction doit retourner (ou imprimer) le texte suivant:
100 has identical files to 430
104 has identical files to 332
Notez que les fichiers dont les hachages sont uniques ne sont pas mentionnés.
De plus, la commande est importante ici :
{100: "aabb", 202: "aabb", 303: "ab", 404: "aabb"}
doit retourner (imprimer) le texte suivant:
100 has identical files to 202,404
Il est incorrect d'imprimer l'un des éléments suivants:
202 has identical files to 100,404
100 has identical files to 404, 202
Vous devez l'imprimer en fonction de la façon dont il apparaît dans le dictionnaire. Dans certaines langues, parcourir un dictionnaire est aléatoire, donc dans ce cas particulier, vous êtes autorisé à changer la méthode de saisie de manière à pouvoir le parcourir de manière ordonnée.
Plus d'exemples:
{} # prints nothing
{100: "ab", 303: "cd"} # prints nothing again
{100: "ab", 303: "cd", 404: "ab"}
100 has identical files to 404
{303: "abc", 304: "dd", 305: "abc", 405: "dd", 606: "abc"}
303 has identical files to 305,606
304 has identical files to 405
Le code le plus court gagne!
303 has identical files to [305, 606]
place de 303 has identical files to 305,606
?