По заданной строке ваша задача - свернуть ее в зигзагообразную структуру, как описано ниже.
Складывание в зигзаг
Мы возьмем строку "Mississippi"
в качестве примера:
Сначала выведите самый длинный префикс, состоящий только из уникальных символов:
Mis
Когда вы достигнете первого дублирующего символа C , проигнорируйте его и выведите самый длинный префикс, состоящий из уникальных символов оставшейся строки (
issippi
) по вертикали, ниже первого вхождения C :Mis i s
Повторите процесс, чередуя горизонтальное и вертикальное продолжение. Но теперь будьте осторожны (на шаге 1), чтобы продолжить вывод по горизонтали из последнего появления дублированного символа, который не обязательно является последним, как в этом случае:
Mis i sip ----- Mis i sip i
правила
- Строка будет содержать только печатные символы ASCII, но не будет содержать пробелов.
- Вы можете соревноваться на любом языке программирования и можете принимать и выводить данные любым стандартным методом и в любом приемлемом формате 1 , при этом отмечая, что эти лазейки по умолчанию запрещены. Это код-гольф , поэтому выигрывает самое короткое представление (в байтах) для каждого языка .
- 1 Ввод: строка / список символов / все, что ваш язык использует для представления строк. Вывод: многострочная строка, список строк, представляющих строки, или список списков символов / строк длины 1, но, если возможно, включите в свой вариант довольно печатную версию своего кода.
- Что касается дополнительных пробелов, вывод может содержать:
- Ведущие / конечные переводы строк
- Конечные пробелы в каждой строке / в конце
- Последовательное число ведущих пробелов в каждой строке
- Вы должны начать выводить горизонтально, вы не можете начать вертикально.
Контрольные примеры
Входы:
"Отлично" "Миссисипи" «Странность» «пустяки» «Ктулху» "PPCG" "POpOpOpOpOpOp" "ABCCCE" "ABCCCECCEEEEC" "Abcdcebffg" "ABCA" "AAAAAAAA"
Соответствующие выводы:
Perf с T
Mis я глоток я
Od х годов T
Triv L х годов T
Cthul U
п С грамм
рО ОРО эстрадный п
азбука С Е
азбука CCE E EC
ABCD е б фг
азбука
A А.А.
ABCcde
"A" ≠ "a"
. Выход для ABCcde
будет простоABCcde
AAAAAAAA
b
, поскольку вы должны рассматривать только дубликаты в оставшейся строке , то есть после «ветвления». Как только вы достигнете второгоc
, вы выводите самый длинный префикс уникальных символов оставшейся строки , которыйebffg
(таким образом, выводится поebf
вертикали и продолжается по горизонтали после этого), поэтому вам не нужно беспокоиться о символах из той части строки, которая был уже выведен до переключения ориентации. Если вам все еще неясно, я приведу еще один пошаговый пример с этим контрольным примером.