Dada uma sequência de entrada de comprimento 2
ou mais, consistindo apenas de caracteres alfabéticos [A-Z]
ou [a-z]
(sua escolha, se todas estiverem em maiúsculas ou minúsculas), imprima uma sequência contínua de caracteres formando um padrão de diamante duplo.
A sequência de entrada começa na linha central e se estende para baixo e para a direita na diagonal até o final da sequência de entrada. Então, o padrão continua na diagonal para cima e para a direita até que você esteja tão acima da linha central quanto o comprimento da string de entrada menos 1. Continue abaixo e à direita de volta à linha central e, em seguida, abaixo e esquerda, depois para cima e para a esquerda (indo "para trás" do personagem central) e, finalmente, para baixo e para a esquerda de volta para o personagem inicial.
Isso é um pouco prolixo e é melhor demonstrado por alguns exemplos:
"YOU"
U Y
Y O U O
Y O U
O Y U Y
U O
^ ^
↙ ↖ ↗ ↘
↘ ↗ >
↘ ↗ ↖ ↙
V V
Veja como YOU
começa na linha central e segue para baixo e para a direita, depois para cima e para a direita etc., até voltar ao início. Observe especialmente como a Y
parte superior e esquerda está "atrás" do O
e, portanto, não é mostrada.
Alguns exemplos adicionais:
"HI"
I I
H H H
I I
"TEST"
E E
S T T S
T T T T
T S T
E E E E
S T T S
T T
"HELLO"
L L
O L E L
H E H O
E H O H
H L E
E L L L
L E L L
L H E O
O H
- A entrada e a saída podem ser fornecidas por qualquer método conveniente .
- É garantido que a entrada tenha pelo menos duas letras (ou seja, você nunca receberá
""
como entrada). - Você pode imprimi-lo em STDOUT ou retorná-lo como resultado de uma função.
- Um programa completo ou uma função são aceitáveis.
- Qualquer quantidade de espaço em branco estranho é aceitável, desde que os caracteres sejam alinhados adequadamente (por exemplo, fique à vontade para preencher como um retângulo).
- As brechas padrão são proibidas.
- Isso é código-golfe, portanto todas as regras usuais de golfe se aplicam e o código mais curto (em bytes) vence.