Вызов:
Учитывая строку, содержащую только заглавные и / или строчные буквы (в зависимости от того, что вы предпочитаете), поместите ее tape
горизонтально, чтобы исправить это. Мы делаем это, проверяя разницу между двумя соседними буквами в алфавите (игнорируя циклический переход и только продвигаясь вперед) и заполняя пространство таким количеством TAPE
/, tape
как нам нужно.
Пример:
Вход: abcmnnnopstzra
Выход:abcTAPETAPETmnnnopTAstTAPETzra
Зачем?
- Между
c
иm
должно бытьdefghijkl
(длина 9), поэтому мы заполняем этоTAPETAPET
; - Между
p
иs
должно бытьqr
(длина 2), поэтому мы заполняем этоTA
; - Между
t
иz
должно бытьuvwxy
(длина 5), поэтому мы заполняем этоTAPET
.
Правила соревнований:
- Разница применяется только вперед, поэтому нет ленты между ними
zra
. - Можно иметь несколько одинаковых соседних букв, например
nnn
. - Вам разрешено принимать входные данные в любом разумном формате. Может быть единственной строкой, строковым массивом / списком, символьным массивом / списком и т. Д. Вывод имеет такую же гибкость.
- Вам разрешается использовать строчные и / или прописные буквы любым удобным для вас способом. Это относится как к входу, так и к выводу
TAPE
. - Возможно, нет
TAPE
необходимости, и в этом случае вход остается неизменным.
Основные правила:
- Это код-гольф , поэтому выигрывает самый короткий ответ в байтах.
Не позволяйте языкам кода-гольфа отговаривать вас от публикации ответов на языках, не относящихся к кодексу. Попробуйте придумать как можно более короткий ответ для «любого» языка программирования. - К вашему ответу применяются стандартные правила , поэтому вы можете использовать STDIN / STDOUT, функции / метод с правильными параметрами и типом возврата, полные программы. Ваш звонок.
- По умолчанию лазейки запрещены.
- Если возможно, добавьте ссылку на тест для вашего кода.
- Также, пожалуйста, добавьте объяснение, если это необходимо.
Тестовые случаи:
Input: "abcmnnnopstzra"
Output: "abcTAPETAPETmnnnopTAstTAPETzra"
Input: "aza"
Output: "aTAPETAPETAPETAPETAPETAPEza"
Input: "ghijk"
Output: "ghijk"
Input: "aabbddeeffiiacek"
Output: "aabbTddeeffTAiiaTcTeTAPETk"
Input: "zyxxccba"
Output: "zyxxccba"
Input: "abccxxyz"
Output: "abccTAPETAPETAPETAPETAPExxyz"
Input: "abtapegh"
Output: "abTAPETAPETAPETAPETtaTAPETAPETAPETApeTgh"
Input: "tape"
Output: "taTAPETAPETAPETApe"
ab[TAPETAPETAPETAPET]TA[TAPETAPETAPETA]PE[T]gh
(добавил, []
чтобы сделать его более читабельным).