Las primeras letras, ¡muévete! fue muy popular, pero tuvo una participación limitada. Este será más fácil de resolver, pero espero que implique algunos trucos en el golf.
Se le da una cadena de solo letras minúsculas. Para cada letra, con posición en el alfabeto m , muévala para que se convierta en la letra m desde el final. Si el valor de m es más largo que la longitud de la cadena, muévalo al frente. Salida solo la cadena completamente transformada.
Ejemplos:
"jirafa"
- 'g' es la séptima letra del alfabeto, ya es la séptima letra del reverso, así que déjalo.
- 'i' es la novena letra, ya que 9 es más grande que la longitud de la palabra, va al frente, por lo que la cadena se convierte en
igraffe
- 'r' es la letra 18, como 'i' va al frente:
rigaffe
- 'a' es la primera letra, va hasta el final:
rigffea
- 'f' es la sexta letra, se convierte en la sexta desde atrás:
rfigfea
- la siguiente 'f' también es la sexta letra, por lo que también va a la sexta desde atrás:
rffigea
- 'e' es la quinta letra, va a la quinta desde atrás:
rfefiga
"flor"
- 'f' (6) =>
flower
- 'l' (12) =>
lfower
- 'o' (15) =>
olfwer
- 'w' (23) =>
wolfer
- 'e' (5) =>
weolfr
- 'r' (18) =>
rweolf
"piña"
- '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
(¡asegúrate de mover la e que aún no se ha movido! Aquí no importa, pero debajo sí).
Gracias a @Neil por mejorar los casos de prueba con estas 3 adiciones:
"Pizza"
- 'p' (16) =>
pizza
- 'i' (9) =>
ipzza
- 'z' (26) =>
zipza
- 'z' (26) =>
zzipa
(moviendo la segunda 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
"caracteres"
- '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