Desafio de compressão de texto do Twitter

RegrasSeu programa deve ter dois modos:codificação edecodificação.

Quandocodificação:

Seu programa deve ter como entrada algumas informações legíveisLatin1 texto, presumivelmente inglês.Não importa se você ignora sinais de pontuação.Você só precisa se preocupar com palavras inglesas reais, não L337.Quaisquer letras acentuadas podem ser convertidas em simples ASCII.Você pode escolher como quer lidar com números.123um dois três1231231 2 3123um dois três1231231 2 3

Seu programa deve gerar uma mensagem que possa ser representada

140 pontos de código no intervaloU+0000U+10FFFF

Excluindo não caracteres:

U+FFFEU+FFFFU+nFFFE, U+nFFFF Onden é110 hexadecimalU+FDD0U+FDEFU+D800U+DFFF (pontos de código substitutos).

Pode ser emitido em qualquer codificação razoável de sua escolha; qualquer codificação suportada porGNUiconv será considerado razoável e a codificação nativa da plataforma ou a codificação de localidade provavelmente seria uma boa escolha.

Quandodecodificação:

Seu programa deve ter como entrada a saída do seucodificação modo.A saída de texto deve ser uma aproximação do texto de entrada.Quanto mais próximo você chegar do texto original, melhor.Não precisa ter pontuação.

O texto de saída deve ser legível por um humano, novamente presumivelmente inglês.

Pode ser L337 ou lol.O processo de decodificação pode não ter acesso a qualquer outra saída do processo de codificação que não seja a saída especificada acima; ou seja, você não pode carregar o texto em algum lugar e enviar a URL para o processo de decodificação para download, ou qualquer coisa tola assim.Por uma questão de consistência na interface do usuário, seu programa deve se comportar da seguinte maneira:Seu programa deve ser um script que pode ser definido como executável em uma plataforma com o intérprete apropriado ou um programa que possa ser compilado em um executável.Seu programa deve ter como primeiro argumentoencode oudecode para definir o modo.Seu programa deve ter entrada em pelo menos uma das seguintes maneiras:Pegue a entrada do padrão e produza a saída padrão.my-program encode <input.txt >output.utfmy-program decode <output.utf >output.txtTome entrada de um arquivo chamado no segundo argumento e produza saída no arquivo nomeado no terceiro.my-program encode input.txt output.utfmy-program decode output.utf output.txtPara sua solução, por favor poste:Seu código, na íntegra, e / ou um link para ele hospedado em outro lugar (se é muito longo, ou requer muitos arquivos para compilar, ou algo assim).Uma explicação de como isso funciona, se não for imediatamente óbvio no código ou se o código for longo e as pessoas estiverem interessadas em um resumo.Um texto de exemplo, com o texto original, o texto que é compactado e o texto decodificado.Se você está construindo uma ideia que outra pessoa teve, por favor atribua-a. Está tudo bem tentar fazer um refinamento da ideia de outra pessoa, mas vocêdevo atribuí-los.

As regras são uma variação das regras paraDesafio de codificação de imagem do Twitter.

questionAnswers(3)

yourAnswerToTheQuestion