Это сложный вопрос о хитростях и оптимизациях, которые можно использовать при игре в гольф в Pyth. Гольфисты Pyth могут распознать многие хитрости. Однако могут быть задействованы незнакомые подходы и конструкции, поэтому, если вы застряли, взгляните на советы по Pyth, а также на справочник персонажей Pyth. Решения могут быть проверены здесь .
Цель: есть 8 задач, каждая из которых содержит фрагмент Pyth для оптимизации. Ваша цель - создать что-то эквивалентное, но более короткое. Эталонные решения занимают 80 байтов. Ваша цель - побить это как можно больше.
Победитель перейдет к представлению, которое решает все 8 задач с наименьшим общим количеством байтов. Tiebreaker - более ранний пост.
Ответ: Пожалуйста, спойлер весь ваш ответ, за исключением вашего общего балла. Предполагается, что вы не смотрите на ответы других людей, прежде чем отправлять свои.
Каждое представление должно отвечать на каждую проблему и давать соответствующий счетчик байтов, но вы можете свободно использовать эталонную реализацию, если вы не можете ее улучшить.
Подробности: если вопрос требует определенного значения или вывода, q
равенство желательно, поэтому 1
и !0
эквивалентны. Если вопрос требует проверки, является ли условие истинным, выходные данные должны быть правдивыми, если условие истинно, и ложными, если условие ложно, но не ограничено этим. Вы не можете менять истину на ложь и ложь на истину. Если вопрос требует, чтобы что-то было напечатано, больше ничего не может быть напечатано, кроме завершающего перевода строки.
Все ответы должны быть действительными для самого последнего коммита Pyth на момент публикации этого вопроса.
Проблема 1: Учитывая набор в Q, выведите список, содержащий элементы Q в любом порядке.
; 3 bytes
f1Q
Проблема 2: Выведите список [1, 1, 0, 0, 1, 1, 0]
.
; 9 bytes
[J1JZZJJZ
Проблема 3: Учитывая положительное целое число в Q, проверьте, являются ли все цифры Q положительными (не ноль).
; 7 bytes
!f!TjQT
Проблема 4: Для заданной строки в z проверьте, содержит ли z кавычки - "
или '
.
; 9 bytes
|}\'z}\"z
Проблема 5: сопоставьте Q = 1 с «победой», Q = 0 с «ничьей» и Q = -1 с «проигрышем».
; 20 bytes
@["Tie""Win""Lose")Q
Проблема 6: Печать 0123456789
.
; 6 bytes
sm`dUT
Задача 7: Учитывая строку в z, подсчитайте количество инверсий.
(Индексирует i
и j
образует инверсию, если i < j
но z[i] > z[j]
).
; 17 bytes
ssmm>@zd@zkrdlzUz
Проблема 8: Учитывая список в z, подсчитайте количество повторяющихся смежных элементов.
; 9 bytes
lfqFT.:z2
f1Q
фильтруетQ
функцию, которая всегда имеет значение true, поэтому она всегда выводит каждый элемент набора.f
выводит список, который соответствует цели в этом вопросе.Ответы:
52 байта
источник
54 байта
источник
""
- Ложь, потому чтоnot ""
Истина.58 байт
источник
V
(хотя до сих пор не до конца понимаю, так как вы выполняете векторные операции над операндами неравной длины), так что я прошу прощения за это, но я действительно должен был подуматьC\f
= /V
автоматически усекает неравные входные данныеЭтот пост предназначен для накопления лучших решений по всем ответам. Отредактируйте решение и ответчика, который первым нашел это решение, если будут какие-либо улучшения.
48 байтов
источник
57 байт
источник
te\\st
является ложным срабатыванием.