Dada uma sequência de entrada contendo apenas caracteres ASCII alfanuméricos e iniciando com uma letra, troque cada letra executada pela digitação seguinte.
Uma corrida é uma sequência de letras ou dígitos consecutivos. Observe que, no caso em que a sequência de entrada termina com uma sequência de letras, essa execução é deixada intocada.
Exemplo passo a passo
Por exemplo, dada a sequência de entrada uV5Pt3I0
:
- Execuções separadas de letras e de dígitos:
uV 5 Pt 3 I 0
- Identifique pares de execuções:
(uV 5) (Pt 3) (I 0)
- Troque pares de execuções:
(5 uV) (3 Pt) (0 I)
- Concatenar:
5uV3Pt0I
Exemplos
uV5Pt3I0 -> 5uV3Pt0I
J0i0m8 -> 0J0i8m
abc256 -> 256abc
Hennebont56Fr -> 56HennebontFr
Em5sA55Ve777Rien -> 5Em55sA777VeRien
nOoP -> nOoP
Isso é código-golfe, então a resposta mais curta em bytes vence. As explicações são incentivadas.
(a,(b,y))<-span(<':')<$>span(>'9')s
.