Виклик:
Подаючи рядок, що містить лише великі та / або малі літери (що б ви не 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
(додано значення, []
щоб зробити його читабельніше)