この挑戦で私を助けてくれた @KritixiLithosに感謝します!
Vは、コードゴルフの課題でvimを使用および拡張できるように作成したプログラミング言語です。最初のコミットは2016年3月3日でした。つまり、今日Vは1歳になります。ウーフー
存在のVの最初の一年間、四つの異なる貢献者から176回のコミットがあった12人の異なるユーザからの140件の回答、およびカウントする、あまりにも多くの壊れた重複事業者。@Dennisがgeneしみなくホストしているオンライン通訳があり、12月以来ほぼ8,000回実行されています。
Vの誕生日を祝うために挑戦しましょう!Vのほとんどの機能は文字列操作とアスキーアートを念頭に置いて設計されているため、Vを祝うための課題はアスキーアートに関するものであることが当然のように思えます。したがって、今日の課題は、単語を入力として受け取り、その単語をV字の形に変更することです。たとえば、入力 "Hello"は次の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>
新しい行ごとに、先頭にスペースが1つ追加され、文字列の両側が互いに向かって移動し、重複する文字が削除されます。入力の最初の文字である最後の行まで。各行の末尾の空白は許容され、末尾の改行も許可されます。
入力は常に空白を含まない印刷可能な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
~:
~ ~
~
もちろん、これはcode-golfであるため、標準の抜け穴は禁止されており、目標はこのタスクを完了するために可能な限り短いプログラムを書くことです。ハッピーゴルフ!
価値があるのは、vimの回答がソフトスポットであるため、vimまたはVを使用した場合の想像上のボーナスポイントですが、どの言語でも受け入れられます。:)