Jako programista prawdopodobnie słyszałeś o ukośnikach do przodu i do tyłu. Ale czy słyszałeś o obluzowaniach? Wtedy bierzesz kilka cięć, łączysz ich końce i rysujesz je w dół.
W dzisiejszym wyzwaniu musisz napisać program lub funkcję, która pobiera ciąg składający się wyłącznie z ukośników i wypisuje wszystkie ukośniki narysowane w dół w linii łączącej je. Będzie to o wiele wyraźniejsze, jeśli zobaczysz przykład. Biorąc pod uwagę ciąg \\\//\/\\
, powinieneś wypisać:
\
\
\
/
/
\
/
\
\
Oto kilka wyjaśnień:
Musi być jeden ukośnik na linię.
Pierwsza linia będzie miała 0 wiodących spacji.
Dla każdej pary ukośników:
Jeśli różnią się od siebie, zostaną narysowane w tej samej kolumnie. Na przykład
\/
da:\ /
Jeśli są tą samą postacią, dolna jest skierowana w kierunku wskazywanym , czyli przesuwa się w prawo, aby wykonać ukośnik odwrotny, i przesuwa się w lewo, aby wykonać ukośnik. Więc
\\//
da\ \ / /
Każda linia może mieć dodatkowe końcowe białe znaki, o ile nie zmienia to wyglądu obrazu wyjściowego. Dopuszczalny jest nawet jeden końcowy i wiodący nowy wiersz. Dodatkowe spacje wiodące są niedozwolone !
Aby uprościć to, możesz założyć, że ciąg nigdy nie będzie zawierał zbyt wielu ukośników. Innymi słowy, żaden prefiks wejścia nie będzie zawierał więcej ukośników niż ukośniki odwrotne, więc dane takie jak \\////
lub //
nigdy nie zostaną podane. Oznacza to również, że każde wejście zacznie się od ukośnika odwrotnego.
Jeśli twoje dane wejściowe są traktowane jako literał łańcuchowy, możesz uciec od ukośników odwrotnych, jeśli jest to konieczne. Nigdy nie będziesz musiał obsługiwać danych wejściowych, które są puste lub zawierają znaki inne niż ukośnik.
Możesz drukować w dowolnym rozsądnym formacie .
Jak zwykle jest to wyzwanie związane z golfem , więc postaraj się znaleźć możliwie najkrótsze rozwiązanie, nawet jeśli wybierzesz język, w którym jest to dość trudne. Punkty bonusowe za wyjaśnienie wszelkich interesujących technik, których użyłeś do zdjęcia bajtów!
Przykłady
#Input
\\\\\\\\\\\
#Output
\
\
\
\
\
\
\
\
\
\
\
#Input
\\\//\\/\//\\///
#Output
\
\
\
/
/
\
\
/
\
/
/
\
\
/
/
/
#Input
\/\/\/
#Output
\
/
\
/
\
/