Setelah semua tugas diserahkan, kamus dibuat yang memetakan nomor siswa ke hash file mereka.
Kamus ini, atau hashmap, atau pemetaan (apa pun bahasa Anda menyebutnya) akan terlihat sebagai berikut:
{100: "aabb", 104: "43a", 52: "00ab", 430: "aabb", 332: "43a"}
Kuncinya adalah nomor siswa, dan nilainya adalah hash.
Tugas kita adalah untuk memilih curang! Curang adalah orang-orang yang memiliki hash identik.
Diberikan input {100: "aabb", 104: "43a", 52: "00ab", 430: "aabb", 332: "43a"}
, fungsi harus mengembalikan (atau mencetak) teks berikut:
100 has identical files to 430
104 has identical files to 332
Perhatikan bagaimana file di mana hash unik tidak disebutkan.
Juga, urutannya penting di sini :
{100: "aabb", 202: "aabb", 303: "ab", 404: "aabb"}
harus mengembalikan (mencetak) teks berikut:
100 has identical files to 202,404
Tidak benar untuk mencetak salah satu dari yang berikut:
202 has identical files to 100,404
100 has identical files to 404, 202
Anda harus mencetaknya dalam hal bagaimana itu muncul dalam kamus. Dalam beberapa bahasa, membaca kamus adalah acak, jadi dalam kasus khusus ini, Anda diizinkan untuk mengubah metode input sehingga Anda dapat menjalaninya secara teratur.
Lebih banyak contoh:
{} # 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
Kode terpendek menang!
303 has identical files to [305, 606]
bukan 303 has identical files to 305,606
?