Come programmatore, probabilmente hai sentito parlare di barre rovesciate e barre rovesciate. Ma hai sentito parlare di downslash? Questo è quando prendi un sacco di barre, connetti le loro estremità e le trascini verso il basso.
Per la sfida di oggi, è necessario scrivere un programma o una funzione che accetta una stringa costituita esclusivamente da barre e genera tutte quelle barre disegnate verso il basso in una linea che le collega. Questo sarà molto più chiaro se vedi un esempio. Data la stringa \\\//\/\\
, dovresti produrre:
\
\
\
/
/
\
/
\
\
Ecco alcuni chiarimenti:
Deve esserci una barra per riga.
La prima riga avrà 0 spazi iniziali.
Per ogni coppia di barre:
Se sono diversi l'uno dall'altro, verranno disegnati nella stessa colonna. Ad esempio,
\/
darà:\ /
Se hanno lo stesso personaggio, quello inferiore è nella direzione indicata , che si sposta verso destra per una barra rovesciata e verso sinistra per una barra. Così
\\//
darà\ \ / /
Ogni riga può avere spazi bianchi finali aggiuntivi purché ciò non cambi l'aspetto visivo dell'output. È accettabile anche una riga finale nuova e iniziale. Non sono ammessi spazi iniziali aggiuntivi !
Per mantenerlo più semplice, puoi presumere che la stringa non conterrà mai troppe barre in avanti. In altre parole, nessun prefisso dell'input conterrà più barre rovesciate rispetto alle barre rovesciate, quindi un input simile \\////
o //
non verrà mai fornito. Questo significa anche che ogni input inizierà con una barra rovesciata.
Se il tuo input viene preso come una stringa letterale, puoi evitare le barre rovesciate se è necessario. Inoltre non dovrai mai gestire un input vuoto o che contiene caratteri diversi da una barra.
È possibile produrre in qualsiasi formato ragionevole .
Come al solito, si tratta di una sfida di code-golf , quindi cerca di rendere la soluzione più breve possibile, anche se scegli una lingua in cui è piuttosto difficile. Punti bonus per la spiegazione di eventuali tecniche interessanti che hai usato per eliminare i byte!
Esempi
#Input
\\\\\\\\\\\
#Output
\
\
\
\
\
\
\
\
\
\
\
#Input
\\\//\\/\//\\///
#Output
\
\
\
/
/
\
\
/
\
/
/
\
\
/
/
/
#Input
\/\/\/
#Output
\
/
\
/
\
/