Sua tarefa: escreva um programa / função que, ao receber uma sequência contendo apenas caracteres ASCII, produza / retorne a sequência em ordem inversa.
Exemplo:
1) Entrada
Hello, World!
2) Numere caracteres únicos na entrada. (String de entrada separada por pipes ( |
) para facilitar a leitura)
H|e|l|l|o|,| |W|o|r|l|d|!
1 2 3 4 5 6 7 8 9 10
3) Para caracteres duplicados, encontre a primeira ocorrência desse caractere e numere o caractere duplicado com o mesmo número que o primeiro.
H|e|l|l|o|,| |W|o|r|l|d|!
1 2 3 3 4 5 6 7 4 8 3 9 10
4) Inverta a string, mas não os números.
!|d|l|r|o|W| |,|o|l|l|e|H
1 2 3 3 4 5 6 7 4 8 3 9 10
5) Exclua os caracteres acima dos números repetidos. (Caracteres excluídos representados com um asterisco.)
!|d|l|*|o|W| |,|*|l|*|e|H
1 2 3 3 4 5 6 7 4 8 3 9 10
6) Substitua os caracteres excluídos pelo caractere que aparece sobre a primeira ocorrência do número em que o caractere excluído acabou.
!|d|l|l|o|W| |,|o|l|l|e|H
1 2 3 3 4 5 6 7 4 8 3 9 10
7) Saída
!dlloW ,olleH
Casos de teste:
Input -> Output
"Hello, World!" -> "!dlloW ,olleH"
"18464399" -> "99343488"
"Code Golf" -> "floG eloC"
"abcdefgABCDEFG" -> "GFEDCBAgfedcba"
"Mmm, marshmallows" -> "swwllwmhsrwm mms"
"15147" -> "74751"