As primeiras cartas, mexam-se! era muito popular, mas tinha participação limitada. Este será mais fácil de resolver, mas espero envolver alguns truques no golfe.
Você recebe uma sequência de apenas letras minúsculas. Para cada carta, com a posição no alfabeto m , movê-lo de modo que se torna o m th carta do fim. Se o valor de m for maior que o comprimento da string, mova-o para a frente. Saída apenas a cadeia totalmente transformada.
Exemplos:
"girafa"
- 'g' é a sétima letra do alfabeto, já é a sétima letra do verso, então deixe-o.
- 'i' é a 9ª letra, uma vez que 9 é maior que o comprimento da palavra, ela vai para a frente, então a string se torna
igraffe
- 'r' é a 18ª letra, como 'i' vai para a frente:
rigaffe
- 'a' é a primeira letra, vai até o fim:
rigffea
- 'f' é a sexta letra, torna-se a sexta na parte de trás:
rfigfea
- o próximo 'f' também é a sexta letra, e também a sexta parte de trás:
rffigea
- 'e' são as 5as letras, vão para a quinta parte de trás:
rfefiga
"flor"
- 'f' (6) =>
flower
- «l» (12) =>
lfower
- «o» (15) =>
olfwer
- 'w' (23) =>
wolfer
- «e» (5) =>
weolfr
- «r» (18) =>
rweolf
"abacaxi"
- «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
(certifique-se de mover o e que ainda não foi movido! Aqui não importa, mas abaixo disso.)
Agradecemos à @Neil por melhorar os casos de teste com estas três adições:
"pizza"
- «p» (16) =>
pizza
- «i» (9) =>
ipzza
- «z» (26) =>
zipza
- 'z' (26) =>
zzipa
(movendo o segundo z!) - 'a' (1) =>
zzipa
"abracadabra"
- '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
"personagens"
- «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