Час для іншої практики Pyth. Я представляю тут 8 тверджень про проблеми з рішенням Pyth кожен. Ці рішення пише початківець Pyth. Він цілком радий цим рішенням, оскільки вони набагато коротші, ніж відповіді його Python. Однак ваше завдання - показати йому краще. Створюйте рівноцінні, але короткіші програми.
Це виклик щодо хитрощів та оптимізацій, які можна використати при гольфі в 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)