Предпосылка:
Ваша репутация находится в форме обмена стека, если она может быть представлена путем разложения количества ваших медалей (золото, серебро и бронза, подсчитанные отдельно) на их базовые 10 цифр и объединения их в любом заданном порядке с несколькими оговорками.
Разлагая, каждый
- Цифра золотой медали стоит три цифры.
- Серебро стоит две цифры.
- Бронза это одна цифра.
- Кроме того, поскольку SE не отображает тип медали, если у вас его нет, подсчет 0 медалей для типа не приведет к a
[0]
.
Пример:
[1 Gold, 2 Silvers, 3 Bronzes]
будет разлагаться на[1,1,1,2,2,3]
. 321112 и 213121 являются двумя примерами номера SE-формы для этих медалей.[20 Golds, 0 Silvers, 20 Bronzes]
будет разлагаться на[2,2,2,0,0,0,2,0]
. 20002022 - это номер SE-формы.[11 Golds, 0 Silvers, 0 Bronzes]
будет разлагаться на[1,1,1,1,1,1]
. 111111 является единственным номером SE-формы для этого.
При рассмотрении номера SE не будет начальных 0. Например, во втором примере, приведенном выше, 00002222 -> 2222
номер SE-формы для [20,0,20]
.
Ввод, вывод:
Входные данные представляют собой список / кортеж / массив / все, [reputation, gold_medals, silver_medals, bronze_medals]
что является неотрицательными целыми числами. Это предполагаемый порядок, но его можно изменить. Просто запишите в своем ответе, если вы это сделаете.
Выходными данными являются любые два согласованных значения для true и false.
Правила:
- Ввод всегда будет действительным
- У вас всегда будет хотя бы 1 репутация
- У вас не может быть никаких медалей, которые всегда должны возвращать ложь.
- Подсчет медалей не имеет никакого отношения к реальности. Хорошо иметь несколько сотен золотых и без бронзы.
- Это код-гольф, поэтому выигрывает самый короткий ответ в байтах.
Тестовые случаи:
#[Rep, Gold, Silver, Bronze] -> Output
[4, 0, 0, 4] -> True
[1447, 0, 4, 17] -> True
[74414, 4, 0, 17] -> True
[4444, 4, 0, 4] -> True
[4455, 0, 54, 0] -> True
[5355, 5, 0, 3] -> True
[53535, 5, 3, 0] -> True
[4444, 0, 0, 4444] -> True
[444, 4, 0, 0] -> True
[1234, 0, 0, 1234] -> True
[1234, 0, 0, 4321] -> True
[4444, 1, 0, 1] -> False
[5555, 5, 0, 55] -> False
[1234, 1, 23, 4] -> False
[1, 0, 0, 0] -> False
[1001001, 0, 10, 10] -> False
источник
[bronze, silver, gold]
и отдельный второй входreputation
?Ответы:
05AB1E ,
1614131110 байтПринимает входные медали в порядке
[bronze, silver, gold]
первого ввода иreputation
второго ввода.-1 байт благодаря @Grimy .
Попробуйте онлайн или проверьте все контрольные примеры .
Объяснение:
источник
3L
->∞
для -1.\x19\xd7\x30\x4b\x4a\x82\x80\x7b\xec\xcb
: Должна быть возможность запуска этих шестнадцатеричных байтов с--osabie
флагом, но я не уверен, как это сделать в версии 05AB1E Elixir, чтобы быть полностью честным (но я спрошу некоторые другие проверят и свяжутся с вами с ответом).JavaScript (ES6),
9274 байтаПринимает вход как
(['gold','silver','bronze'])('rep')
. Возвращает логическое значение.Попробуйте онлайн!
JavaScript (ES6), 74 байта
Принимает вход как
(gold, silver, bronze, 'rep')
. Возвращает логическое значение.Попробуйте онлайн!
источник
MATL ,
28 байтов20 байтов16 байтов13 байтовВозвращает 0 для false и 1 для true. Это может определенно быть в гольфе.
Уменьшение до 16 байт, если оценка репутации может быть взята отдельно, а порядок [бронза, серебро, золото], репутация.До 13 байтов благодаря Луису Мендо.
Попробуйте онлайн!
источник
Рубин , 69 байт
Попробуйте онлайн!
источник
J ,
383431 байтПопробуйте онлайн!
источник
Japt ,
141312 байтПринимает вход как
[rep, bronze, silver, gold]
Попробуйте или проверьте все тесты
источник
Å
было ненужным, такfn
как избавился бы от первого значения. УдалениеÅ
делает это 12 байтовСетчатка 0.8.2 , 45 байт
Попробуйте онлайн! Ссылка включает тестовый набор. Объяснение:
Удалить ноль баллов.
Разверните счетчики золота и серебра и преобразуйте разделитель в новую строку.
Сортируйте репутацию и расширенные баллы отдельно.
Сравните отсортированные цифры.
источник
Желе , 10 байт
Попробуйте онлайн!
Аргумент 1:
[Bronze, Silver, Gold]
Аргумент 2:
Rep
источник
Ракетка,
14910798 байтПопробуйте онлайн!
Первый раз играю в гольф в ракетке, поэтому все еще ищу улучшения ...
Пояснение (оригинальной более длинной версии, но та же идея):
источник
Древесный уголь , 24 байта
Попробуйте онлайн! Ссылка на подробную версию кода. Принимает вход в порядке повтор, бронза, серебро, золото и выводит,
1
если ответ действителен. Объяснение:Предположим, что ответ действителен.
Цикл по четырем входным значениям. Нажмите каждую цифру каждого значения
i
раз, гдеi
находится индекс с 0 индексами значения. Числовое базовое преобразование используется здесь, поскольку оно преобразует0
в пустой массив.Проверьте, что число каждой цифры в массиве совпадает со значением в первом входе. Если они отличаются, очистите холст.
источник
Желе , 18 байт
Попробуйте онлайн!
это немного плохо
источник
Python 2 ,
80797768 байтПопробуйте онлайн!
Принимает вход как
rep, gold, silver, bronze
.источник
Perl 5
-lF
, 62 байтаПопробуйте онлайн!
Принимает ввод в отдельных строках как
источник