После отправки всех заданий создается словарь, который отображает номер студента в хэш их файла.
Этот словарь, или hashmap, или отображение (как бы это ни называл ваш язык) будет выглядеть следующим образом:
{100: "aabb", 104: "43a", 52: "00ab", 430: "aabb", 332: "43a"}
Ключ - это номер студента, а значение - хеш.
Наша задача - выбрать читеров! Мошенники - это те, которые имеют идентичные хэши.
С учетом ввода {100: "aabb", 104: "43a", 52: "00ab", 430: "aabb", 332: "43a"}
функция должна вернуть (или напечатать) следующий текст:
100 has identical files to 430
104 has identical files to 332
Обратите внимание, что файлы с уникальными хэшами не упоминаются.
Также здесь важен порядок :
{100: "aabb", 202: "aabb", 303: "ab", 404: "aabb"}
должен вернуть (распечатать) следующий текст:
100 has identical files to 202,404
Это неправильно для печати любого из следующих условий :
202 has identical files to 100,404
100 has identical files to 404, 202
Вы должны напечатать это с точки зрения того, как это появляется в словаре. В некоторых языках просмотр словаря происходит случайно, поэтому в этом особом случае вам разрешается изменять метод ввода так, чтобы вы могли проходить его упорядоченным образом.
Больше примеров:
{} # 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
Самый короткий код выигрывает!
источник
303 has identical files to [305, 606]
вместо303 has identical files to 305,606
?Ответы:
JavaScript (Babel Node) , 113 байт
Принимает ввод в виде массива массивов в
[key, value]
формате. Go Go Gadget двойной плоский карта!Попробуйте онлайн!
JavaScript (Babel Node) , 114 байт
Принимает ввод как собственный объект JS.
Попробуйте онлайн!
источник
flatMap
flatMap
пока широко не поддерживается. Я уверен, что есть более короткие пути, но уже поздно, и я не могу больше думать. : pPython 2 ,
127126 байтовПопробуйте онлайн!
Принимает список упорядоченных пар в
(<studentNumber>,<hash>)
качестве входных данных.источник
if','in
Сетчатка 0.8.2 , 71 байт
Попробуйте онлайн! Принимает ввод в отдельных строках, но ссылка включает набор тестов, который разбивает примеры для вас. Объяснение:
Повторяйте это совпадение до тех пор, пока больше не будет выполнено никаких замен.
Найдите пары совпадающих хэшей и добавьте ключ второго совпадения к ключу первого совпадения с помощью разделителя запятых.
Удалить все хеши.
Оставляйте только строки с запятыми.
Замените первую запятую в каждой строке нужным текстом (включая завершающий пробел).
источник
R ,
145132129126124 байтПопробуйте онлайн!
В качестве входных данных используется именованный вектор (имена - это ключи)
Если
", "
разделитель (с пробелом после запятой) разрешен в случае нескольких дубликатов, мы можем использовать этот код и сохранить 10 байтов:R , 114 байт
Попробуйте онлайн!
источник
05AB1E , 34 байта
Попробуйте онлайн или проверьте все контрольные примеры .
Объяснение:
Смотрите этот 05AB1E ответ мой (раздел Как использовать словарь? ) , Чтобы понять , почему
“ÿ€°Ê¼‡œ€„ “
это"ÿ has identical files to "
.источник
Рубин ,
9896 байтПопробуйте онлайн!
Принимает ввод как Ruby Hash, возвращает печать.
источник
Желе , 39 байт
Попробуйте онлайн!
источник
C # (интерактивный компилятор Visual C #) , 130 байт
Попробуйте онлайн!
Странная вещь в этом вопросе состоит в том, что примеры приведены в формате JSON в виде пар ключ / значение, что обычно подразумевает, что они неупорядочены ... В этом случае, однако, порядок важен. Поэтому я использую список кортежей для ввода и список строк в качестве вывода.
источник
Perl 5, 100 +1 (-n) байтов
Попробуйте онлайн!
источник
Japt , 34 байта
Попробуйте онлайн!
Прямо сейчас это немного противоречиво в порядке строк, но в пределах строки он выводит правильно. Если строки вывода должны быть в определенном порядке, это займет еще несколько байтов. Ввод - это просто массив
[id, hash]
парОбъяснение:
источник
Perl 6 ,
115110103 байтов-2 байта благодаря Джо Кингу
Попробуйте онлайн!
Принимает список пар, поскольку хэши неупорядочены. Список из двухэлементных списков может сэкономить несколько байтов, но, похоже, не содержит символов. Возвращает список строк.
9588 байт, если порядок строк в результате не имеет значения:Попробуйте онлайн!
источник
.[1..*]
к.skip