Vielen Dank an @KritixiLithos, der mir bei dieser Herausforderung geholfen hat !
V ist eine Programmiersprache, die ich geschrieben habe, um vim für Code-Golf-Herausforderungen zu verwenden und zu erweitern. Das allererste Commit fand am 3. März 2016 statt, was bedeutet, dass V heute ein Jahr alt wird! Woo-hoo
Im ersten Jahr des Bestehens von V gab es 176 Commits von vier verschiedenen Mitwirkenden, 140 Antworten von 12 verschiedenen Benutzern und zu viele fehlerhafte Duplikatoperatoren, um gezählt zu werden . Es verfügt über einen Online-Dolmetscher , der großzügig von @Dennis gehostet wird und seit Dezember fast 8.000 Mal ausgeführt wurde .
Feiern wir den Geburtstag von V! Da die meisten Features in V auf String-Manipulation und Ascii-Art ausgelegt sind , scheint es nur selbstverständlich, dass sich jede Herausforderung, die V feiert, auf Ascii-Art bezieht. Ihre Herausforderung für heute besteht also darin, ein Wort als Eingabe zu nehmen und dieses Wort in die Form eines V umzuformen. Die Eingabe "Hallo" sollte beispielsweise das folgende V ergeben:
Hello olleH
Hello olleH
Hello olleH
Hello olleH
Hello olleH
HellolleH
HellleH
HeleH
HeH
H
Hier sind einige Details darüber, wie Ihr V aussehen sollte. Wenn die Eingabezeichenfolge n Zeichen lang ist, sollte das V n*2
Zeilen lang sein. Die allererste Zeile sollte bestehen aus:
<input string><(n*2) - 1 spaces><input string reversed>
In jeder neuen Zeile wird am Anfang ein Leerzeichen eingefügt, und die beiden Seiten der Zeichenfolge werden aufeinander zu bewegt, wobei sich überlappende Zeichen entfernt werden. Bis zur allerletzten Zeile, die nur das erste Zeichen der Eingabe ist. Es ist akzeptabel, in jeder Zeile Leerzeichen nachzustellen, und es ist auch zulässig, eine neue Zeile nachzustellen.
Sie können davon ausgehen, dass die Eingabe immer druckbares ASCII ohne Leerzeichen sein wird, und Sie können die Eingabe und Ausgabe in jeder angemessenen Methode vornehmen. Hier sind einige weitere Beispieleingaben:
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
~:
~ ~
~
Da es sich um Code-Golf handelt , sind natürlich Standard-Lücken verboten und es ist Ihr Ziel, das kürzestmögliche Programm zu schreiben, um diese Aufgabe zu erfüllen. Viel Spaß beim Golfen!
Was auch immer es wert ist, ich habe ein Faible für VIM-Antworten, also imaginäre Bonuspunkte für die Verwendung von VIM oder V, obwohl jede Sprache akzeptabel ist. :)