Дякуємо @KritixiLithos за те, що допомагає мені вирішити цю проблему!
V - мова програмування, яку я написав, щоб я міг використовувати і розширювати vim для проблем з кодовим гольфом. Найперший вчинок відбувся 3 березня 2016 року, це означає, що сьогодні V виповнюється рік! Ву-ху
За перший рік існування V було зареєстровано 176 доручень від чотирьох різних учасників, 140 відповідей від 12 різних користувачів і занадто багато зламаних дублікатів операторів для підрахунку . У ньому є перекладач в Інтернеті , який щедро розміщував @Dennis, який проводився майже 8000 разів із грудня .
Будемо мати виклик святкувати день народження V! Оскільки більшість функцій V розроблені з використанням маніпуляцій зі струнами та мистецтвом ascii-art , то просто видається природним, що будь-який виклик святкування V повинен стосуватися мистецтва ascii. Отже, ваше завдання сьогодні полягає в тому, щоб взяти слово як вхідне і змінити це слово у формі V. Наприклад, введення "Привіт" повинно містити наступне V:
Hello olleH
Hello olleH
Hello olleH
Hello olleH
Hello olleH
HellolleH
HellleH
HeleH
HeH
H
Ось кілька деталей про те, як повинен виглядати ваш V. Якщо вхідний рядок довжиною n символів, V має бути n*2
високими рядками. Перший рядок повинен складатися з:
<input string><(n*2) - 1 spaces><input string reversed>
У кожному новому рядку додається один пробіл на початку, і дві сторони рядка рухаються назустріч один одному, видаляючи будь-які символи, що перетинаються. До останнього рядка, який є лише першим символом введення. Проміжок пробілів у кожному рядку є прийнятним, і дозволений новий пробіл також.
Можна припустити, що вхід завжди буде надрукованим ASCII без пробілів у ньому, і ви можете приймати введення та вихід будь-яким розумним методом. Ось ще кілька прикладних входів:
Happy:
Happy yppaH
Happy yppaH
Happy yppaH
Happy yppaH
Happy yppaH
HappyppaH
HapppaH
HapaH
HaH
H
Birthday:
Birthday yadhtriB
Birthday yadhtriB
Birthday yadhtriB
Birthday yadhtriB
Birthday yadhtriB
Birthday yadhtriB
Birthday yadhtriB
Birthday yadhtriB
BirthdayadhtriB
BirthdadhtriB
BirthdhtriB
BirthtriB
BirtriB
BiriB
BiB
B
V!:
V! !V
V! !V
V!V
V
~:
~ ~
~
Звичайно, оскільки це код-гольф , стандартні лазівки заборонені, і ваша мета - написати якомога коротшу програму для виконання цього завдання. Щасливого гольфу!
Що для цього варто, у мене є м'яке місце для відповідей на vim, тому уявні бонусні бали за використання vim або V, хоча будь-яка мова є прийнятною. :)