Un acrostico è uno stile di poesia / scrittura in cui il carattere iniziale di ogni riga, se letto verticalmente, produce anche una parola o un messaggio. Per esempio,
Together
Everyone
Achieves
More
scrive anche la parola TEAMquando la prima colonna viene letta in verticale.
Gli acrostici sono un sottoinsieme di mesostici , dove la parola verticale può trovarsi ovunque nelle parole orizzontali. Ad esempio, TEAMquello sopra potrebbe anche essere scritto come mesostico come segue
togeTher
everyonE
Achieves
More
insieme a diverse altre varianti.
La sfida qui sarà quella di produrre un acrostico o mesostico da un determinato elenco di parole di input.
Ingresso
- Un elenco di parole in qualsiasi formato adatto .
- L'elenco conterrà solo parole composte da lettere minuscole
[a-z]. - L'elenco è garantito per formare un acrostico o un mesostico (non è necessario gestire input fasulli).
- Una delle parole nell'input formerà la parola verticale, mentre il resto creerà le parole orizzontali - una parte della sfida qui è trovare la parola verticale appropriata, quindi non può essere presa separatamente.
Produzione
- L'acrostico o mesostico di arte ASCII si è formato dalle parole di input, scritte su STDOUT o restituite, in qualsiasi formato ragionevole.
- La parola verticale corrispondente deve essere maiuscola (come negli esempi).
- Portando gli spazi per ottenere la parola verticale per allineare appropriatamente sono richiesti . Gli spazi finali e le nuove righe iniziali / finali sono facoltativi. Anche gli spazi iniziali extra vanno bene, purché le parole siano allineate correttamente.
- Se sono possibili sia un acrostico che un mesostico, emettere solo l'acrostico.
- Se è possibile più di un acrostico / mesostico, il codice può emetterne uno o tutti.
Regole
- È accettabile un programma completo o una funzione.
- Sono vietate le scappatoie standard .
- Si tratta di code-golf quindi si applicano tutte le normali regole del golf e vince il codice più breve (in byte).
Esempi
['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