En tant que programmeur, vous avez probablement entendu parler de barres obliques et de barres obliques inversées. Mais avez-vous entendu parler de slashs? C'est à ce moment-là que vous prenez une série de barres obliques, connectez leurs extrémités et dessinez-les en descendant.
Pour le défi d'aujourd'hui, vous devez écrire un programme ou une fonction qui prend une chaîne composée uniquement de barres obliques et qui les affiche toutes en une ligne. Ce sera beaucoup plus clair si vous voyez un exemple. Étant donné la chaîne \\\//\/\\
, vous devriez générer:
\
\
\
/
/
\
/
\
\
Voici quelques clarifications:
Il doit y avoir une barre oblique par ligne.
La première ligne aura 0 espaces de début.
Pour chaque paire de barres obliques:
S'ils sont différents les uns des autres, ils seront dessinés dans la même colonne. Par exemple,
\/
donnera:\ /
S'ils sont identiques, le caractère inférieur est orienté dans la direction indiquée , c'est-à-dire qu'il se déplace vers la droite pour une barre oblique inverse et vers la gauche pour une barre oblique. Donc
\\//
va donner\ \ / /
Chaque ligne peut avoir des espaces de fin supplémentaires, à condition que cela ne modifie pas l'apparence visuelle de la sortie. Il est également possible d’acquérir jusqu’à une nouvelle ligne précédente et suivante. Les espaces supplémentaires ne sont pas autorisés !
Afin de garder cela plus simple, vous pouvez supposer que la chaîne ne contiendra jamais trop de barres obliques. En d'autres termes, aucun préfixe de l'entrée ne contiendra plus de barres obliques que de barres obliques inverses. Une entrée telle que \\////
ou //
ne sera jamais donnée. Cela signifie également que chaque entrée commencera par une barre oblique inverse.
Si votre entrée est considérée comme un littéral de chaîne, vous pouvez échapper les barres obliques inverses si cela est nécessaire. En outre, vous ne devrez jamais gérer une entrée vide ou contenant des caractères autres qu'une barre oblique.
Vous pouvez sortir par n'importe quel format raisonnable .
Comme d’habitude, il s’agit d’un défi de code-golf . Essayez donc de trouver la solution la plus courte possible, même si vous choisissez une langue qui est assez difficile. Des points bonus pour expliquer toutes les techniques intéressantes que vous utilisiez pour enlever des octets!
Exemples
#Input
\\\\\\\\\\\
#Output
\
\
\
\
\
\
\
\
\
\
\
#Input
\\\//\\/\//\\///
#Output
\
\
\
/
/
\
\
/
\
/
/
\
\
/
/
/
#Input
\/\/\/
#Output
\
/
\
/
\
/