Первые письма, двигайся! был очень популярен, но имел ограниченное участие. Этот будет легче решить, но мы надеемся привлечь некоторые уловки в гольф.
Вам дана строка только строчных букв. Для каждой буквы с положением в алфавите 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