La sfida
Dato un elenco di parole in ["Programming", "Puzzles", "Code", "Golf"]
uscita le parole in stile cruciverba:
P rogramma u z z G l Codice ls f
L'algoritmo
- Devi elaborare l'elenco nell'ordine dato.
- Le parole sono stampate con orientamenti alternati, iniziando in senso orizzontale .
Le due parole si intersecano alla prima lettera della prima parola che è presente anche nella seconda parola. Se questa lettera compare più volte nella seconda parola, prendi la prima.
Esempio :
["no", "on"]
diventa:o n o
e non
n o n
Note aggiuntive
- Le parole adiacenti nell'elenco avranno almeno una lettera comune.
["Hi", "there"]
non è un input valido. - Le parole non si scontreranno mai. Ci sarà sempre abbastanza spazio per stampare una parola al primo incrocio possibile.
["Hello", "there", "end", "hello"]
non è un input valido - La corrispondenza è sensibile al maiuscolo / minuscolo.
- Le parole possono espandersi a sinistra e in alto.
- Le lettere delle parole orizzontali devono essere separate da uno spazio.
- L'elenco di input conterrà almeno due parole.
- Tutte le parole corrisponderanno alla regex:
[A-Za-z]+
- È possibile stampare tutti gli spazi bianchi o le nuove righe finali desiderati, purché le parole siano correttamente concatenate.
- D'altra parte non è possibile aggiungere ulteriori spazi bianchi iniziali. La parola che galleggia più a sinistra ha zero spazi iniziali, le altre linee hanno così tanti spazi iniziali che tutto si allinea correttamente.
- Il tuo programma deve essere in grado di gestire una quantità arbitraria di parole
Regole
- Funzione o programma completo consentiti.
- Regole predefinite per input / output.
- Si applicano scappatoie standard .
- Questo è code-golf , quindi vince il conteggio dei byte più basso. Tiebreaker è una presentazione precedente.
Casi test
Elenco di input sulla prima riga, l'output inizia sulla seconda riga.
["Stack", "Exchange"] E X c h S tack n g e
["Questo", "sito", "laureato", "finalmente"] f è n suo laureato Le l y
Buona programmazione!
site
edgraduated
èt