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 oe 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!
siteedgraduatedèt