Biorąc pod uwagę ciąg, Twoim zadaniem jest zwinięcie go w strukturę zygzakowatą, jak opisano poniżej.
Składany w zygzak
Weźmy ciąg "Mississippi"jako przykład:
Najpierw wypisz najdłuższy prefiks składający się tylko z unikalnych znaków:
MisKiedy dojdziesz do pierwszego zduplikowanego znaku C , zignoruj go i wypisz najdłuższy prefiks składający się z unikalnych znaków pozostałego ciągu (
issippi) pionowo, poniżej pierwszego wystąpienia C :Mis i sPowtórz proces, naprzemiennie z kontynuacją poziomą i pionową. Ale teraz uważaj (w kroku 1), aby kontynuować wyświetlanie w poziomie od ostatniego wystąpienia zduplikowanego znaku, który niekoniecznie jest ostatnim, jak w tym przypadku:
Mis i sip ----- Mis i sip i
Zasady
- Ciąg będzie zawierał tylko znaki ASCII do wydruku, ale nie będzie zawierał żadnych białych znaków.
- Możesz konkurować w dowolnym języku programowania i przyjmować dane wejściowe i dostarczać dane wyjściowe dowolną standardową metodą w dowolnym rozsądnym formacie 1 , zwracając uwagę, że te luki są domyślnie zabronione. To jest golf golfowy , więc wygrywa najkrótsze przesłanie (w bajtach) dla każdego języka .
- 1 Dane wejściowe: Ciąg / Lista znaków / cokolwiek innego, jakiego używa Twój język do reprezentowania ciągów. Dane wyjściowe: Ciąg wielowierszowy, lista ciągów reprezentujących wiersze lub lista list ciągów znaków / długość-1, ale w miarę możliwości prosimy o dołączenie do odpowiedzi ładnej wersji kodu.
- Jeśli chodzi o dodatkowe spacje, dane wyjściowe mogą zawierać:
- Wiodące / końcowe znaki nowej linii
- Końcowe spacje na każdej linii / na końcu
- Zgodne liczba czołowych miejsc na każdej linii
- Musisz zacząć wyjścia poziomo, może nie uruchomić w pionie.
Przypadki testowe
Wejścia:
"Doskonały" „Mississippi” „Dziwactwa” "Fidrygałki" „Cthulhu” „PPCG” „pOpOpOpOpOpOp” „ABCCCE” „ABCCCECCEEEEC” „abcdcebffg” „abca” „AAAAAAAA”
Odpowiednie wyniki:
Perf do t
Mis
ja
łyk
ja
Od ies t
Triv za l ies t
Cthul u
P. do sol
pO OpO Muzyka pop p
ABC do mi
ABC CCE E EC
abcd mi b fg
ABC
ZA AA ZA
ABCcde
"A" ≠ "a". Wyjściem ABCcdebyłoby po prostuABCcde
AAAAAAAA
b, ponieważ powinieneś brać pod uwagę tylko duplikaty w pozostałym ciągu , to znaczy po „rozgałęzieniu”. Po osiągnięciu drugiegoc, wypisujesz najdłuższy prefiks unikatowych znaków pozostałego ciągu , który jestebffg(w ten sposób wypisując webfpionie i kontynuując poziomo po nim), więc nie musisz się martwić o znaki z części ciągu, która został już wyprowadzony przed zmianą orientacji. Jeśli nadal wydaje ci się to niejasne, dam kolejny krok po kroku przykład z tym przypadkiem testowym.