Время для другой практики Pyth. Я представляю здесь 8 задач с решением Pyth каждое. Эти решения написаны начинающим Pyth. Он очень доволен этими решениями, так как они намного короче, чем его ответы на Python. Ваша задача, однако, показать его лучше. Создавайте эквивалентные, но более короткие программы.
Это сложный вопрос о хитростях и оптимизациях, которые можно использовать при игре в гольф в Pyth. Игроки в Pyth могут признать многие из уловок, которые приводят к более коротким решениям. Однако некоторые проблемы потребуют некоторых необычных подходов, которые используются редко. Некоторые из трюков, которые я на самом деле никогда не видел в дикой природе. Но ни одно решение не требует каких-либо ошибок или странного поведения, которое не было намеренным разработчиком (-ями) Pyth. Все ответы должны быть действительными для самого последнего коммита Pyth ( 2b1562b ) на момент публикации этого вопроса. Вы можете использовать интерпретатор Pythдля тестирования. Сейчас это актуально, и я не ожидаю каких-либо больших изменений в Pyth, которые лишат законной силы оптимальные решения или сделают возможным более короткие решения. В онлайн-переводчике также есть новая ссылка на персонажа. Поскольку он довольно новый, вы также можете (должны) использовать старые документы на случай, если что-то будет неправильно или отсутствует.
Цель: эталонные решения составляют 81 байт. Ваша цель - побить это как можно больше. Представление, которое решает все 8 проблем с наименьшим общим количеством байтов, побеждает. Tiebreaker - это дата подачи.
Конечно, действительными являются только материалы, которые содержат решения для всех 8 проблем. Вы можете использовать эталонную реализацию, если не можете улучшить оценку одной (или более) конкретной проблемы.
Ваши решения должны выводить те же выходные данные, что и эталонные решения. За исключением необязательного завершающего символа новой строки.
Поскольку это практика Pyth, разрешены только программы, написанные на языке Pyth.
Ответ: Пожалуйста, спойлер весь ваш ответ, за исключением вашего общего балла. Предполагается, что вы не смотрите на ответы других людей перед тем, как отправлять свои собственные. Вы можете создать спойлеры, поставив>! перед каждой строкой, например:
>! Problem 1: V9m?>dNd0S9 (11 bytes)
>! Problem 2: VTN)VGN (7 bytes)
>! ...
Надеюсь, я не выбрал слишком сложные или слишком тривиальные задачи. Надеемся, что многие участники и каждый получат несколько новых идей о Pyth. Удачного игры в гольф!
Проблема 1:
Создайте следующую матрицу 9x9 и распечатайте ее:
[1, 2, 3, 4, 5, 6, 7, 8, 9]
[0, 2, 3, 4, 5, 6, 7, 8, 9]
[0, 0, 3, 4, 5, 6, 7, 8, 9]
[0, 0, 0, 4, 5, 6, 7, 8, 9]
[0, 0, 0, 0, 5, 6, 7, 8, 9]
[0, 0, 0, 0, 0, 6, 7, 8, 9]
[0, 0, 0, 0, 0, 0, 7, 8, 9]
[0, 0, 0, 0, 0, 0, 0, 8, 9]
[0, 0, 0, 0, 0, 0, 0, 0, 9]
Эталонное решение ( ссылка ):
V9m?>dNd0S9 (11 bytes)
Проблема 2:
Выведите все цифры и все буквы в отдельных строках:
0
...
9
a
...
z
Эталонное решение ( ссылка ):
VTN)VGN (7 bytes)
Проблема 3:
Найдите лексикографически наименьший палиндром, который лексикографически больше или равен входной строке, содержащей строчные буквы, и совпадает с входной строкой.
a -> a
abc -> aca
adcb -> adda
Эталонное решение ( ссылка ):
hf&gTzqT_T^Glz (14 bytes)
Проблема 4:
Проверьте, находится ли число в диапазоне [0, введите номер). Это также должно работать для поплавков.
4, 6 -> True
5.5, 6 -> True
6, 6 -> False
6, 6.1 -> True
Эталонное решение ( ссылка ):
&gQ0<QE (7 bytes)
Опорный формат to be tested value<newline>end value
. Однако вы можете выбрать другой формат ввода. Важно только, чтобы вы выполнили постановку задачи и дали правильные результаты.
Проблема 5:
Разбор входной строки в формате "\ d + [a-zA-Z] +". Обратите внимание, что число действительно должно быть числом, а не строкой, содержащей цифры.
'123Test' -> [123, 'Test']
Эталонное решение ( ссылка ):
A.ggk\Az,sGH (12 bytes)
Проблема 6:
Вычислить сумму чисел, разделенных одной или несколькими запятыми. Вы можете предположить, что в строке есть хотя бы одно число.
11,2,,,3,5,,8 -> 29
Эталонное решение ( ссылка ):
svM:z",+"3 (10 bytes)
Проблема 7:
Читайте положительные целые числа из ввода, пока не получите число 0. Выведите сумму всех чисел.
Эталонное решение ( ссылка ):
WJE=+ZJ)Z (9 bytes)
Проблема 8:
Суммируйте все элементы квадратной матрицы, кроме элементов главной диагонали (левый верхний угол к правому нижнему углу).
Эталонное решение ( ссылка ):
-ssQs.e@bkQ (11 bytes)