Вызов:
Учитывая строку, содержащую только заглавные и / или строчные буквы (в зависимости от того, что вы предпочитаете), поместите ее 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(добавил, []чтобы сделать его более читабельным).
