Como programador, você provavelmente já ouviu falar de barras e barras invertidas. Mas você já ouviu falar de desvantagens? É quando você pega um monte de barras, conecta suas extremidades e as desenha descendo.
Para o desafio de hoje, você deve escrever um programa ou função que use uma string que consiste puramente de barras e produza todas as barras desenhadas para baixo em uma linha que os conecta. Isso ficará muito mais claro se você vir um exemplo. Dada a string \\\//\/\\
, você deve gerar:
\
\
\
/
/
\
/
\
\
Aqui estão alguns esclarecimentos:
Deve haver uma barra por linha.
A primeira linha terá 0 espaços à esquerda.
Para cada par de barras:
Se forem diferentes, serão desenhados na mesma coluna. Por exemplo,
\/
dará:\ /
Se eles tiverem o mesmo caractere, o inferior estará na direção apontada , que está se movendo para a direita para uma barra invertida e para a esquerda para uma barra invertida. Então
\\//
vai dar\ \ / /
Cada linha pode ter espaços em branco extras, contanto que isso não altere a aparência visual da saída. Até uma nova linha à direita e à frente também é aceitável. Espaços extras não são permitidos !
Para simplificar, você pode assumir que a string nunca conterá muitas barras. Em outras palavras, nenhum prefixo da entrada conterá mais barras do que barras invertidas; portanto, uma entrada como \\////
ou //
nunca será fornecida. Isso também significa que cada entrada começará com uma barra invertida.
Se sua entrada for tomada como uma string literal, você poderá escapar das barras invertidas, se isso for necessário. Você também nunca precisará manipular uma entrada que esteja vazia ou contenha caracteres que não sejam uma barra.
Você pode imprimir em qualquer formato razoável .
Como de costume, esse é um desafio do código-golfe , portanto, tente tornar a solução mais curta possível, mesmo se você escolher um idioma em que isso seja bastante difícil. Pontos de bônus por explicar qualquer técnica interessante usada para remover bytes!
Exemplos
#Input
\\\\\\\\\\\
#Output
\
\
\
\
\
\
\
\
\
\
\
#Input
\\\//\\/\//\\///
#Output
\
\
\
/
/
\
\
/
\
/
/
\
\
/
/
/
#Input
\/\/\/
#Output
\
/
\
/
\
/