Meu desafio anterior, Imprimir texto invisível, era bastante popular, provavelmente devido ao quão trivial é.
No entanto, aqueles mais atentos de vocês devem ter notado que não estão realmente imprimindo texto invisível, porque é impossível ler o que foi inserido, apenas a saída.
Então eu percebi que tal um verdadeiro desafio texto invisível.
Dada uma sequência que consiste apenas em caracteres ASCII imprimíveis ( 0x20-0x7E), converta cada caractere em um caractere Unicode distinto (na codificação UTF-8) que não seja um dos 95 caracteres ASCII imprimíveis (qualquer caractere UTF-8 fora do 0x20-0x7Eintervalo)
Entrada
Uma sequência de caracteres ASCII imprimíveis, como uma sequência ou matriz / lista de caracteres
Resultado
A sequência de entrada com cada caractere é substituída por um caractere não imprimível distinto. Cada caractere especificado deve ter um caractere não imprimível correspondente que não seja usado como substituto para qualquer outro caractere.
Se você não conseguir imprimir caracteres não imprimíveis, poderá gerar os valores dos caracteres.
Por exemplo, se o seu código substituir todos os minúsculos apor 0x01, você não poderá usar 0x01como substituto para outros caracteres.
Seu código também deve ser determinístico . Isso significa que, se, dada a string Hello, todas as minúsculas lforem substituídas por 0x03, seu código também deverá substituir todas as minúsculas lpor 0x03qualquer outra string.
Casos de teste
É um pouco difícil escrever casos de teste para esse desafio, então mostrarei a saída como uma lista de códigos hexadecimais
input -> output
"Hello" -> [0x01, 0x02, 0x03, 0x03, 0x04]
"Hi!" -> [0x01, 0x05, 0x06]
"" -> []
" H " -> [0x07, 0x07, 0x07, 0x01, 0x07, 0x07, 0x07]
"yo! " -> [0x08, 0x04, 0x06, 0x07]
