Первые письма, двигайся! был очень популярен, но имел ограниченное участие. Этот будет легче решить, но мы надеемся привлечь некоторые уловки в гольф.
Вам дана строка только строчных букв. Для каждой буквы с положением в алфавите m переместите ее так, чтобы она стала m- й буквой с конца. Если значение m больше длины строки, переместите ее в самое начало. Выведите только полностью преобразованную строку.
Примеры:
"жирафа"
- «g» - седьмая буква в алфавите, это уже седьмая буква сзади, поэтому оставьте ее.
- «i» - это 9-я буква, так как 9 больше длины слова, оно идет вперед, поэтому строка становится
igraffe - «r» - это 18-я буква, как и «i», она идет вперед:
rigaffe - «а» - это первая буква, она идет до самого конца:
rigffea - 'f' - это 6-я буква, она становится 6-й сзади:
rfigfea - следующая буква «f» также является шестой буквой, поэтому она также идет к шестой букве сзади:
rffigea - «е» - 5-е буквы, оно идет к 5-м сзади:
rfefiga
"цветок"
- 'f' (6) =>
flower - 'l' (12) =>
lfower - 'o' (15) =>
olfwer - 'w' (23) =>
wolfer - 'e' (5) =>
weolfr - 'r' (18) =>
rweolf
"ананас"
- 'p' (16) =>
pineapple - 'i' (9) =>
ipneapple - 'n' (14) =>
nipeapple - 'e' (5) =>
nipaepple - 'a' (1) =>
nipepplea - 'p' (16) =>
pnipeplea - 'p' (16) =>
ppnipelea - 'l' (12) =>
lppnipeea - 'e' (5) =>
lppneipea(убедитесь, что вы переместили e, которое еще не было перемещено! Здесь это не имеет значения, но ниже это имеет значение.)
Спасибо @Neil за улучшение тестовых случаев с этими 3 дополнениями:
"пицца"
- 'p' (16) =>
pizza - 'i' (9) =>
ipzza - 'z' (26) =>
zipza - 'z' (26) =>
zzipa(двигая второй z!) - 'a' (1) =>
zzipa
«Абракадабра»
- 'a' (1) =>
bracadabraa - 'b' (2) =>
racadabraba - 'r' (18) =>
racadabraba - 'a' (1) =>
rcadabrabaa - 'c' (3) =>
radabrabcaa - 'a' (1) =>
rdabrabcaaa - 'd' (4) =>
rabrabcdaaa - 'a' (1) =>
rbrabcdaaaa - 'b' (2) =>
rrabcdaaaba - 'r' (18) =>
rrabcdaaaba - 'a' (1) =>
rrbcdaaabaa
"персонажи"
- 'c' (3) =>
haractecrs - 'h' (8) =>
arhactecrs - 'a' (1) =>
rhactecrsa - 'r' (18) =>
rhactecrsa - 'a' (1) =>
rhctecrsaa - 'c' (3) =>
rhtecrscaa - 't' (20) =>
trhecrscaa - 'e' (5) =>
trhcrescaa - 'r' (18) =>
rtrhcescaa - 's' (19) =>
srtrhcecaa