Compressão de strings pela regra de grupos consecutivos

Rust Hard strings

Tarefa «Compressão de strings pela regra de grupos consecutivos»

Dada uma string composta por letras minúsculas do alfabeto latino. É necessário implementar um algoritmo de compressão de string: se na string houver um grupo de caracteres iguais com comprimento maior que 1, esse grupo é substituído pelo caractere e pelo número de repetições (o número é escrito sem zeros à esquerda). Se o grupo consistir em um único caractere, ele permanece inalterado. Exiba a string comprimida resultante. O comprimento da string original não excede 10^5.

Formato de Entrada

Na entrada, é fornecida uma única string S, composta por letras minúsculas do alfabeto latino (a-z). O comprimento da string é de 1 a 10^5.

Formato de Saída

Exiba uma única string — a versão comprimida da string original.

Exemplos

Exemplo 1

ENTRADA
abc
SAÍDA
abc

Exemplo 2

ENTRADA
aabbaa
SAÍDA
a2b2a2

Exemplo 3

ENTRADA
97 98 99 97 98 99
SAÍDA
97 98 92 97 98 92
main.rs