(relacionado: um , dois , três )
Um acróstico é um estilo de poema / escrita em que o caractere inicial de cada linha, quando lido na vertical, também produz uma palavra ou mensagem. Por exemplo,
Together
Everyone
Achieves
More
também soletra a palavra TEAM
quando a primeira coluna é lida verticalmente.
Acrósticos são um subconjunto de mesósticos s, onde a palavra vertical pode estar em qualquer lugar nas palavras horizontais. Por exemplo, o exemplo TEAM
acima também pode ser escrito como um mesóstico da seguinte maneira
togeTher
everyonE
Achieves
More
junto com várias outras variações.
O desafio aqui será produzir um acróstico ou mesóstico a partir de uma determinada lista de palavras de entrada.
Entrada
- Uma lista de palavras em qualquer formato adequado .
- A lista conterá apenas palavras feitas com letras minúsculas
[a-z]
. - A lista é garantida para formar um acróstico ou um mesóstico (não há necessidade de lidar com dados falsos).
- Uma das palavras na entrada formará a palavra vertical, enquanto as demais formarão as palavras horizontais - parte do desafio aqui é encontrar a palavra vertical apropriada, para que não possa ser usada separadamente.
Saída
- O acróstico ou mesóstico da arte ASCII formado a partir das palavras de entrada, gravadas em STDOUT ou retornadas, em qualquer formato razoável.
- A palavra vertical correspondente deve ser maiúscula (como nos exemplos).
- Espaços iniciais para alinhar a palavra vertical são necessários . Os espaços à direita e as novas linhas à esquerda / à direita são opcionais. Espaços iniciais extras também são bons, desde que as palavras estejam alinhadas corretamente.
- Se tanto um acróstico e mesóstico são possíveis, saída única o acróstico.
- Se mais de um acróstico / mesóstico for possível, seu código poderá gerar um ou todos eles.
Regras
- Um programa completo ou uma função são aceitáveis.
- 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.
Exemplos
['together', 'team', 'everyone', 'achieves', 'more']
Together
Everyone
Achieves
More
['aaa', 'aaa', 'aaa', 'aaa']
Aaa
Aaa
Aaa
# One output, or multiple (of the same) output is allowed
['aaa', 'aaa', 'aab', 'baa']
Aaa
Aaa
Baa
# This is the only allowed output, since others would be mesostic, which are lower priority
['live', 'every', 'love', 'very', 'ohio']
Live
Ohio
Very
Every
# Note that 'live' couldn't be the vertical word since then it would be a mesostic, which is lower priority output
['cow', 'of', 'fox']
cOw
Fox
# A shorter mesostic test case
['late', 'ballroom', 'anvil', 'to', 'head']
anviL
bAllroom
To
hEad