Obrigado a @KritixiLithos por me ajudar com esse desafio!
V é uma linguagem de programação que eu escrevi para poder usar e estender o vim para desafios de código-golfe. O primeiro commit foi em 3 de março de 2016, o que significa que hoje V faz um ano! Woo-hoo
Durante o primeiro ano de existência de V, houve 176 confirmações de quatro colaboradores diferentes, 140 respostas de 12 usuários diferentes e muitos operadores duplicados quebrados para contar . Ele tem um intérprete on - line , generosamente hospedado pelo @Dennis, que foi executado quase 8.000 vezes desde dezembro .
Vamos ter um desafio para comemorar o aniversário de V! Como a maioria dos recursos do V é projetada com a manipulação de strings e a arte ascii em mente, parece natural que qualquer desafio que celebre o V seja sobre arte ascii. Portanto, seu desafio para hoje é pegar uma palavra como entrada e remodelá-la na forma de um V. Por exemplo, a entrada "Hello" deve fornecer o seguinte V:
Hello olleH
Hello olleH
Hello olleH
Hello olleH
Hello olleH
HellolleH
HellleH
HeleH
HeH
H
Aqui estão alguns detalhes sobre a aparência do seu V. Se a sequência de entrada tiver n caracteres, o V deverá ter n*2
linhas altas. A primeira linha deve consistir em:
<input string><(n*2) - 1 spaces><input string reversed>
Em cada nova linha, um espaço é adicionado ao início e os dois lados da string se movem um em direção ao outro, removendo os caracteres sobrepostos. Até a última linha, que é apenas o primeiro caractere de entrada. O espaço em branco à direita em cada linha é aceitável e uma nova linha à direita também é permitida.
Você pode assumir que a entrada sempre será imprimível em ASCII sem nenhum espaço em branco e pode receber entradas e saídas de qualquer método razoável. Aqui estão mais algumas entradas de amostra:
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
~:
~ ~
~
Obviamente, como se trata de código-golfe , as brechas padrão são proibidas e seu objetivo é escrever o programa mais curto possível para concluir esta tarefa. Feliz golfe!
Quanto vale a pena, eu tenho uma queda por respostas do vim, portanto, pontos de bônus imaginários por usar o vim ou V, embora qualquer idioma seja aceitável. :)