ред., 35 символів
s/[a-zA-Z]*\([a-zA-Z]\)\|./\1/g
p
Q
Отже, світ закінчується в ред. Оскільки мені подобається бути занадто буквальним, я вирішив написати рішення, щоб написати рішення з ed - і, мабуть, це насправді мова програмування . Це дивно коротко, навіть якщо врахувати, що в цій темі вже існує багато коротших рішень. Було б приємніше, якби я міг використовувати щось інше [a-zA-Z], однак, враховуючи, що Ed не є мовою програмування, це насправді досить добре.
По-перше, я хотів би сказати, що це лише розбирає останній рядок у файлі. Можна було б проаналізувати більше, просто введіть ,на початку два перші рядки (цей заданий діапазон "все", на відміну від стандартного діапазону останнього рядка), але це збільшить розмір коду до 37 символів.
Тепер для пояснень. Перший рядок робить саме те, що робить рішення Perl (за винятком підтримки без символів Unicode). Я не копіював рішення Perl, я просто вигадав щось подібне за збігом обставин.
Другий рядок друкує останній рядок, щоб ви могли бачити вихід. Третій рядок змушує вийти - я повинен це зробити, інакше edнадрукував би, ?щоб нагадати, що ви не зберегли файл.
Тепер про те, як це виконати. Ну, це дуже просто. Просто запустіть edз файлом, що містить тестовий випадок, одночасно прокладаючи мою програму.
ed -s testcase < program
-sмовчить. Це запобігає edвиведенню некрасивого розміру файлу на початку. Зрештою, я використовую його як сценарій, а не редактор, тому мені не потрібні метадані. Якщо я цього не зробив, Ед показав би розмір файлу, який я не міг запобігти інакше.